setItemChecked funktioniert nicht bei Lebkuchen
Ich verwende den folgenden Selektor, um die Darstellung von Text in einem listView-Element zu ändern:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:color="#FFFFFFFF" /> <!-- checked -->
<item android:state_activated="true"
android:color="#FFFFFFFF" /> <!-- activated -->
<item android:state_pressed="true"
android:color="#FFFFFFFF" /> <!-- pressed -->
<item android:state_focused="true"
android:color="#FFFFFFFF" /> <!-- focused -->
<item android:color="#FF000000" /> <!-- default -->
</selector>
Die gesamte Auswahl funktioniert in späteren Versionen von Android (ICS, JB) einwandfrei, aber bei Gingerbread wird das Element state_checked nicht angewendet, während das Element pressed_state korrekt angewendet wird, wenn ich setItemChecked in der ListView aufrufe.
Der Code, den ich verwende, um das Element festzulegen, lautet wie folgt:
@Override
protected void onResume()
{
super.onResume();
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
for (int index = 0; index < measureList.size(); index++)
{
if (measureList.get(index).getId() == appContext.getMeasureId())
{
getListView().setItemChecked(index, true);
}
}
}
und die XML-Datei, die zum Einstellen des Selektors verwendet wird, lautet wie folgt:
<TextView
android:id="@+id/item_text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_marginTop="8dp"
android:layout_marginLeft="8dp"
android:paddingRight="10dp"
android:ellipsize="end"
android:layout_toRightOf="@id/item_thumb"
android:maxLines="1"
android:scrollHorizontally="true"
android:textStyle="bold"
android:textSize="16sp"
android:textColor="@color/selected_text_selector"
/>
Weiß jemand, warum das passiert? Ich habe es noch nicht auf Versionen von Android zwischen GB und ICS getestet, werde diesen Beitrag jedoch bearbeiten, sobald ich es tue.