直接上代码:
首先,给listview的item设置点选时颜色变化的xml文件,和设置button的按下、弹起颜色的xml文件相同:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" ><color android:color="#FBECAE" />
</item>
<item android:state_focused="true" ><color android:color="#FBECAE" />
</item>
<item android:state_pressed="true" ><color android:color="#FBECAE" />
</item>
<item><color android:color="#fff"></color></item>
</selector>
然后,是在listview的setOnItemClickListener回调中的代码,只要2句话:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//设置这个两个状态即可,不需要遍历元素设置backgroud
arg1.setSelected(true);
arg1.setPressed(true);
}
});
大功告成!
通过XML定义selector改变ListView item选中、焦点和按下时的颜色,然后在setOnItemClickListener中设置选中项的selected和pressed状态,简单两步实现ListView选中项行的高亮效果。
337

被折叠的 条评论
为什么被折叠?



