我希望ListView
中的每个偶数项都是不同的颜色。为此,我使用了以下代码:
public void bindView(View row, Context ctxt, Cursor c) {
ViewHolder holder = (ViewHolder) row.getTag();
if (c.getPosition() % 2 == 0) {
row.setBackgroundDrawable(getResources().getDrawable(
R.drawable.dark_item_background));
}
holder.populateFrom(c, mDbHelper);
}
但在触摸事件之后,该项目不会突出显示。请建议如何克服这个问题。
更新
根据Gophermofur的建议,我创建了一个选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_activated_holo" android:state_activated="true"/>
<item android:drawable="@color/item_back_color"/>
</selector>
现在它对果冻豆有效,对姜饼无效。有什么想法吗?
列表视图中的项目实际上并没有定义为纯色(黑色或白色),而是使用选择器定义的,其中不同状态有多种颜色(正常=黑色、按下=橙色、聚焦=蓝色等)。
当您开始用纯色替换列表视图中项目的背景色时,它会覆盖该选择器,因此不同状态不再有不同的颜色。
通常情况下,listview选择器应用于整个listivew,但是,您可以将其直接应用于项目的背景或选择器(我不确定,目前无法测试)。
看看这些链接,了解如何创建选择器XML文件:
教程
SO问题
现在它对果冻豆有效,对姜饼无效。有什么想法吗?
我不确定你的drawable/list_activated_holo是什么,但从它的名字来看,它听起来像是在使用android holo主题——这只是在API 14级中添加的。http://developer.android.com/design/style/themes.html
如果您想在运行低于API 14级的设备上使用颜色,则需要在自己的值/colors.xml中定义颜色。