それを達成するための最もクリーンな方法は何ですか?
あなたが探しているものは、「活性化された」状態として知られています。これを機能させるには:
ステップ #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/
、それへの参照が引き続き機能するようにします。
<resources>
<style name="AppTheme" parent="android:Theme.Light"/>
<style name="activated" parent="AppTheme"/>
</resources>
ステップ #3: の行のレイアウト XML リソースで、ルート要素の属性のリストにListView
追加します。style="@style/activated"
ステップ #4:ListView
を次の行のように単一選択リストに設定しますListFragment
。
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
これは、このサンプル プロジェクト、このサンプル プロジェクト、およびこのサンプル プロジェクトで実際に確認できます。最初の 2 つのサンプルの背景については、SO の質問「Gmail の 3 フラグメント アニメーション シナリオの完全な作業サンプル? 」を参照してください。