Я уже слишком много часов пытаюсь и не могу изменить цвет фона для строк в виде списка.
Это мой код:
public class InteractiveArrayAdapter extends ArrayAdapter<Object> {
private final List<Object> list;
private final Activity context;
public InteractiveArrayAdapter(Activity context, List<Object> list) {
super(context, R.layout.rowbuttonlayout, list);
this.context = context;
this.list = list;
}
static class ViewHolder {
protected TextView text;
protected CheckBox checkbox;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.rowbuttonlayout, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.text = (TextView) view.findViewById(R.id.label);
viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check);
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
Object obj = list.get(position);
//if we have a String object it's a different style
if (obj.getClass() == String.class) {
holder.text.setText((String) obj);
holder.checkbox.setVisibility(View.GONE);
/* tried this - does not work
view.setBackgroundColor(0xAAAA);
*/
holder.text.setTextColor(Color.BLUE); // this is OK
holder.text.setTextSize((float) 18.0); // this is OK
} else { // it's a different row style
holder.text.setText(x.name);
holder.checkbox.setVisibility(View.VISIBLE); // this is OK
holder.text.setTextColor(Color.BLACK); // this is OK
holder.text.setTextSize((float) 15.0); // this is OK
}
return view;
}
}
и это rowbuttonlayout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@+id/label"
android:textSize="12dp" >
</TextView>
</RelativeLayout>
Что бы я ни пытался изменить цвет строки - он остается черным. Единственное, что сработало, было представить ImageView. Но я думаю, что это слишком много, чтобы просто изменить цвет строки.
Кроме того, я не смог полностью заполнить строку представлением изображения.
Итак, все, что я ищу, - это решение установить цвет строки, как и другие атрибуты стиля - это, кстати, работает нормально.
Спасибо!