5

我有这个列表视图:

<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是列表视图,我已经确认它被选中但颜色没有保留。我点击它,它会改变然后又变回来。知道为什么吗?

4

3 回答 3

6

而不是android:listSelector="@drawable/list_selector"在 ListView 中将其用作 row.xml 中的背景

于 2013-10-05T04:57:47.260 回答
1

您也可以在您的列表视图设置布局背景的布局上这样做

android:background="?android:attr/activatedBackgroundIndicator"

然后在你的活动中

ListView.setSelector(R.drawable.list_selector);
于 2013-10-05T05:53:58.707 回答
0

嘿,如何将这些行也添加到您制作的选择器中:(如果有帮助)

<item android:drawable="@android:drawable/myBlueColor" android:state_active="true"/>
<item android:drawable="@android:drawable/myBlueColor" android:state_selected="true"/>
于 2013-10-05T10:21:08.907 回答