ListView中的选择器不可见

时间:2013-06-19 11:40:22

标签: android android-listview android-selector

在我的Android项目中,我有一个带有此项目布局的ListView(它是带有新属性android:background的simple_list_item_1布局)

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:background="@drawable/simple_listselector"
/>

我的android:background="@drawable/simple_listselector"看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/GridSelection" android:state_activated="true"/>
    <item android:drawable="@color/GridSelection" android:state_checked="true"/>
    <item android:drawable="@color/GridSelection" android:state_selected="true"/>
    <item android:drawable="@color/GridSelection" android:state_pressed="true"/>
    <item android:drawable="@color/transparent"/>
</selector>

但是,如果我现在为其中一个listItem调用setSelected(true),则选择器不可见。我是否必须在选择器或项目布局中更改某些内容?

1 个答案:

答案 0 :(得分:0)

首先,您需要设置ListView的选择模式

ListView lv=new ListView(this) or findViewById(R.id.my_list_view);
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

这是你背景的xml文件

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/state_selected" />
<item android:drawable="@android:drawable/state_unselected" />
</selector>

你去吧