私はこの問題に苦しんでいました...長い間取り組んだ後、私は解決策を見つけました。まず、ドローアブル フォルダーの下に list_view_selector.xml を作成します。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selector style for listrow -->
<item
android:state_selected="false"
android:drawable="@drawable/gradient_bg_listview" />
<item android:state_selected="true"
android:drawable="@drawable/gradient_bg_hover_listview" />
<item android:state_activated="true"
android:drawable="@drawable/gradient_bg_hover_listview" />
</selector>
次に、list_view_selector を定義する必要があるリスト データを取得するために使用するレイアウト。私の場合、次のように定義しました。
//This is the adapter where I defined my customlistview
SimpleAdapter adapter1 = new SimpleAdapter(
this,
list1,
R.layout.customlistview,
new String[] {"practice_technique","blank"},
new int[] {R.id.text1,R.id.text2}
);
//This is my customlistview where I defined list_view_selector
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/list_view_selector" >
<TextView android:id="@+id/text1"
style="@style/ListViewItemTextStyle"
android:layout_width="fill_parent"
android:paddingTop="5dp"
android:paddingLeft="10dp"
android:layout_height="fill_parent"
/>
<TextView android:id="@+id/text2"
android:textSize="12sp"
android:textStyle="bold"
android:textColor="#616162"
android:paddingLeft="10dp"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>
そして最後に onListItemclick で次のように書く必要があります:
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
HashMap<String, String> val = list.get(position);
selectedTech = val.get("practice_technique");
//below is the key line
v.setSelected(true);
startSelectedPage();
}