Я пытаюсь разработать класс адаптеров класса, из которого мне нравится наследовать свойство цвета строки для нечетных и четных строк. My Generic Adapter Class -Универсальный адаптер для альтернативного цвета строки?
public class SpecialAdapter<T> extends ArrayAdapter<T> {
private int[] colors = new int[] { 0x30FF0000, 0x300000FF };
public SpecialAdapter(Context context, int resource, List<T> items) {
super(context, resource,items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
int colorPos = position % colors.length;
view.setBackgroundColor(colors[colorPos]);
return view;
}
}
И мне нравится продлить это до моего класса адаптера, чтобы изменить цвет строки.
общественный класс MyArrayAdapter расширяет SpecialAdapter {..}
Возможно ли это? В настоящее время он не отображает никаких цветов. Я не устанавливаю никаких цветов в классе адаптера. Все, что мне нужно, - наследовать цвет строки из базового класса, чтобы я мог использовать это для другого класса адаптера.
Это мой адаптер класс
public MyArrayAdapter(Activity context, List<MyObject> list) {
super(context, R.layout.mylayout, list);
this.context = context;
this.list = list;
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.mylayout, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.txtName = (TextView) view.findViewById(R.id.label);
view.setTag(viewHolder);
} else {
view = convertView;
((ViewHolder) view.getTag()).txtName.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.txtName.setText("Position " + position);
return view;
}
if (position% 2 == 0) {set one color} else {set another one} –
код выглядит хорошо для меня. Вы можете попробовать с полной альфой? FF вместо 30? – Blackbelt
Я пробовал использовать полный Alpha .. но не повезло .. –