我一直在网上,包括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() 添加代码,以确定我所处的状态并采取相应的行动。
有没有一个例子可以让这个工作?谢谢大家,如果我能让它工作,我很乐意发布我的供所有人使用。:-(