Intereting Posts
Как настроить прослушиватель выделенного текста в TextView Как реализовать индикатор выполнения загрузки файлов в android Съемка и геотаг API Java REST для Android SQLite добавить столбец, сохранить данные Студия Android – невозможно переместить Android SDK Как имитировать кнопки управления мультимедийными носителями на эмуляторе Android Мое приложение не будет отображаться в диалоговом окне выбора для android.intent.action.VIEW с типом видео / * только на Marshmallow Приложение Application.mk игнорируется Android Studio Android Espresso – веб-браузер Элементы в listView имеют белый текст при использовании setAdapter в потоке пользовательского интерфейса Почему datepicker добавляет календарь на мой взгляд? Ошибка в файле styles_base.xml – приложение для Android – Ресурс не найден, который соответствует указанному имени 'android: Widget.Material.ActionButton' ListView не обновляется до тех пор, пока клавиатура не будет скрыта Как создать 3D-прокрутку для текста? (Как видно в Appy Geek)

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, проблема в стиле listview не хороша, она черная с белыми строками.

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

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

Solutions Collecting From Web of "Android Alternate row Colors в ListView"

Вот как это сделать.

Мой примерный код приведен здесь вкратце:

Переопределите метод 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.

 if (position % 2 == 0) { rowView.setBackgroundColor(Color.parseColor("#A4A4A4")); } else { rowView.setBackgroundColor(Color.parseColor("#FFBF00")); } 

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

 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>