Android ListView中的项未显示选定的颜色。

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 是列表视图,我已确认它被选中,但颜色不保留。我点击它,它会改变然后又变回原来的颜色。有任何想法吗?

3个回答

6

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


1
你可以在布局中设置listview的背景,也可以采用这种方式。
android:background="?android:attr/activatedBackgroundIndicator"

在你的活动中,然后 <\p>
ListView.setSelector(R.drawable.list_selector);

0

嘿,你觉得把这些代码也加到你已经创建的选择器里怎么样?(如果有帮助的话)

<item android:drawable="@android:drawable/myBlueColor" android:state_active="true"/>
<item android:drawable="@android:drawable/myBlueColor" android:state_selected="true"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接