これを達成する最もクリーンな方法は何ですか?
あなたが探しているものは、「アクティブ化」状態と呼ばれます。この作業を行うには
ステップ1:res/values-v11/
には、activated
を実装するスタイルリソースがあります。例えば、そこに定義されたAppTheme
宣言を持つ新しいプロジェクトのために、のようなもので行く:
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light"></style>
<style name="activated" parent="AppTheme">
<item name="android:background">?android:attr/activatedBackgroundIndicator</item>
</style>
</resources>
ステップ#2:そう、ちょうどスタブスタイルのリソースとして、任意の古いデバイス用res/values/
に同じスタイルを定義します。 、ListView
の行のためのあなたのレイアウトXMLリソースのルート要素
聖の属性のリストにstyle="@style/activated"
を追加します。
<resources>
<style name="AppTheme" parent="android:Theme.Light"/>
<style name="activated" parent="AppTheme"/>
</resources>
ステップ#3:それへの参照が機能し続けEP#4:ListFragment
に、次の行のように単一選択リストであるとListView
を設定します。
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
あなたはthis sample project、this sample project、およびthis sample projectでこの動作を確認することができます。
android.R.layout.simple_list_item_activated_1
代わりの
R.layout.simple_list_item_checkable_1
を使用してComplete Working Sample of the Gmail Three-Fragment Animation Scenario?
あなたは、このリンクは役に立ちかもしれない見ることができます/stackoverflow.com/questions/5682053/listview-item-wont-stay-selected –
リストビュー項目のビューの背景色は、リストビュー項目のクリックで設定できます。 –