我有这个列表视图:
<ListView
android:id="@+id/contactsView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/searchButton"
android:divider="@color/DarkGoldenrod"
android:dividerHeight="0.1dp"
android:listSelector="@drawable/list_selector"
android:choiceMode="singleChoice" />
这是list_selector
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:drawable/myRedColor" android:state_pressed="true"/>
<item android:drawable="@android:drawable/myBlueColor" android:state_selected="true"/>
<item android:drawable="@android:drawable/myGreenColor"/>
</selector>
在我的主要活动课程中,我提出了以下内容:
contactsView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
arg1.setSelected(true);
selectedContactIndex = (int) arg3;
}
});
contactsView
是列表视图,我已经确认它已被选中,但颜色没有停留。我点击它然后改变然后改变回来。知道为什么吗?
答案 0 :(得分:6)
而不是ListView中的android:listSelector="@drawable/list_selector"
,而是将其用作row.xml中的背景
答案 1 :(得分:1)
你也可以通过这种方式在你的listview中设置布局背景的布局
android:background="?android:attr/activatedBackgroundIndicator"
然后在你的活动中
ListView.setSelector(R.drawable.list_selector);
答案 2 :(得分:0)
嘿,如何将这些行添加到您所做的选择器中:(如果有帮助)
<item android:drawable="@android:drawable/myBlueColor" android:state_active="true"/>
<item android:drawable="@android:drawable/myBlueColor" android:state_selected="true"/>