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);