次の問題は私を夢中にさせています。次のコードを使用して、xml フラグメントを定義しました。
<fragment class="host.helperclass.ServiceListFragment"
android:id="@+id/titles"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_width="0px"/>
ServiceListFragment
次に、拡張するクラスを実装しましたSherlockListFragment
。
onActivityCreated
このコードを使用して、メソッドをオーバーライドしました。
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
getListView().setDividerHeight(2);
getListView().setBackgroundColor(Color.parseColor("#EEEEEE"));
getListView().setCacheColorHint(Color.parseColor("#00000000"));
getListView().setSelector(R.drawable.list_selector);
list_selector.xml
非常に単純な場所は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/green"/>
<item android:state_focused="true"
android:drawable="@drawable/green"/>
<item android:state_selected="true"
android:drawable="@drawable/green"/>
</selector>
しかし、ボタンを押したときにのみ、アイテムの緑色の背景が追加されます。離すと、緑色の背景が削除されます。state_selected
が認識されていないようです。これは可能ですか?もしそうなら、内部のアイテムの選択を有効にする方法はありますListView
か?
ノート:
また、アイテムが1つだけのセレクターを使用しようとしました:
<item android:state_focused="true"
android:drawable="@drawable/green" />
その結果、ListViewアイテムを押すと背景が緑色になり、離すと緑色の背景が削除されます。アイテムから指を離すと、アイテムのフォーカスが失われたようです。
編集:
私は別の試みをしました。
onListItemClick メソッド内に次のコード行を追加しました。
getListView().setItemChecked(index, true);
私のxmlセレクターには、このアイテムのみを入れました:
<item android:state_checked="true"
android:drawable="@drawable/green" />
しかし、奇妙なことに、これは機能しません。