Подтвердить что ты не робот

Android Alternate row Colors в ListView

public class ListView extends  ListActivity {

static String item;

public void onCreate(Bundle icicle) {
            super.onCreate(icicle);

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, Str.S);
            setListAdapter(adapter);

      }

Это мой класс представления списка, который работает хорошо, и он берет строки из класса Str и отображает их в списке, проблема в стиле listview не хороша, она черная с белыми строками.

Я хочу, чтобы они были альтернативными, каждая строка имеет цвет.

Я пробовал много учебников, но ни один из них не был достаточно ясным. Как сделать альтернативный цвет для каждой строки. row1 Blue, row 2 White, row 3 Blue, row 4 White и т.д.

4b9b3361

Ответ 1

Здесь, как это сделать.

Мой примерный код приведен ниже:

Переопределите метод getView в вашем адаптере:

@Override
public View getView(int position, View convertView, ViewGroup parent) {  
View view = super.getView(position, convertView, parent);  
if (position % 2 == 1) {
    view.setBackgroundColor(Color.BLUE);  
} else {
    view.setBackgroundColor(Color.CYAN);  
}

return view;  
}

Переопределить ArrayAdapter и переопределить метод getView.

Итак, если ваш адаптер выглядит примерно так:

public class MyAdapter extends ArrayAdapter

Ваш ListActivity изменится следующим образом:

 ArrayAdapter<String> adapter = new MyAdapter<String>(this,
                android.R.layout.simple_list_item_1, Str.S);

Вот пример об переопределении ArrayAdapter.

Ответ 2

if (position % 2 == 0) {

    rowView.setBackgroundColor(Color.parseColor("#A4A4A4"));

} else {

    rowView.setBackgroundColor(Color.parseColor("#FFBF00"));

}

Ответ 3

Цвет фона для настраиваемой строки списка может быть установлен с помощью

row.setBackgroundResource(R.color.list_bg_2)

в пользовательском адаптере listview в

getView(int position, View convertView, ViewGroup parent)

Я пробовал много вещей, таких как row.setBackgroundColor(0xFF00DD), но не смог сделать это,

здесь list_bg_2 - это набор цветов res/values ​​/color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="list_bg_1">#ffffff</color>
    <color name="list_bg_2">#fef2e8</color>
</resources>