Я был в Интернете, включая stackoverflow, и просто не могу получить четкий полный способ
Я хочу создать ListView, который
1) имеет чередующиеся цвета (я могу сделать это с помощью кода ниже) 2) сохраняет поведение выбора оранжевого цвета по умолчанию для android
для выполнения # 1 у меня есть собственный адаптер, который расширяет ArrayAdapter, а затем я переопределяю getView вот так
public View getView(int position, View convertView, ViewGroup parent)
{
....
// tableLayoutId is id pointing to each view/row in my list
View tableLayoutView = view.findViewById(R.id.tableLayoutId);
if(tableLayoutView != null)
{
int colorPos = position % colors.length;
tableLayoutView.setBackgroundColor(colors[colorPos]);
}
}
моя переменная-член для цветов
private int[] colors = new int[] { 0x30ffffff, 0x30ff2020, 0x30808080 };
следил за статьей «Android - Применение альтернативного цвета строки в ListView с помощью SimpleAdapter», найденной здесь
вот где я застрял, я вижу в stackoverflow некоторые упоминания об этом, как это было бы обычно, и они предлагают добавить этот атрибут в
android: listSelector = "@ color / list_item"
где list_item.xml будет чем-то вроде
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/transparent" />
.....
</selector>
Затем мне пришлось бы добавить код в getView (), чтобы выяснить, в каком состоянии я нахожусь, и действовать соответствующим образом.
Есть ли какой-нибудь пример, как заставить это работать? Спасибо всем, я с радостью отправлю свой, чтобы все могли использовать, если я смогу заставить его работать. :-(