Android setItemChecked 的 ListView 选择器在版本 2.2.1 中不起作用
Android selector for ListView by setItemChecked not working in version 2.2.1
我尝试通过以下方法为 checked/selected 行设置颜色:listView.setItemChecked(i, true);但是在 Android 2.2.1 上不工作,颜色没有改变。如果我使用 state_activated 那么这仅适用于较新的版本。我怎样才能做到这一点?谢谢。
我有选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@color/orange"/>
<item android:state_checked="false" android:drawable="@android:color/transparent"/>
然后是列表视图:
<ListView
android:id="@+id/listMP3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:layout_weight="1"
android:clickable="true"
android:choiceMode="singleChoice">
</ListView>
行视图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@drawable/list_item_selector"
android:id="@+id/playerRow" android:paddingTop="5dp" android:paddingBottom="5dp" >
<TextView
android:id="@+id/itemName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.72"
android:text="@string/songName" />
<TextView
android:id="@+id/itemLength"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/songLength" />
我解决了问题。我以编程方式删除了选择器和颜色更改,就像在适配器中一样。它适用于 Android 2.2 和 4.x.
两个版本
if (list.get(position).GetSelected())
view.setBackgroundResource(R.color.orange);
else
view.setBackgroundColor(Color.TRANSPARENT);
我尝试通过以下方法为 checked/selected 行设置颜色:listView.setItemChecked(i, true);但是在 Android 2.2.1 上不工作,颜色没有改变。如果我使用 state_activated 那么这仅适用于较新的版本。我怎样才能做到这一点?谢谢。 我有选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@color/orange"/>
<item android:state_checked="false" android:drawable="@android:color/transparent"/>
然后是列表视图:
<ListView
android:id="@+id/listMP3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:layout_weight="1"
android:clickable="true"
android:choiceMode="singleChoice">
</ListView>
行视图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@drawable/list_item_selector"
android:id="@+id/playerRow" android:paddingTop="5dp" android:paddingBottom="5dp" >
<TextView
android:id="@+id/itemName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.72"
android:text="@string/songName" />
<TextView
android:id="@+id/itemLength"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/songLength" />
我解决了问题。我以编程方式删除了选择器和颜色更改,就像在适配器中一样。它适用于 Android 2.2 和 4.x.
两个版本if (list.get(position).GetSelected())
view.setBackgroundResource(R.color.orange);
else
view.setBackgroundColor(Color.TRANSPARENT);