2013-02-14 37 views
2

我用this SO question爲指導,但是當我點擊一個排它不會保持高亮顯示。我的代碼有什麼問題?我的ListView的背景選擇不會凸顯所選行

score_list.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/score_list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/keyboard" 
     android:listSelector="@drawable/selector" 
     android:choiceMode="singleChoice" 
     android:divider="#CCCCCC" 
     android:dividerHeight="1dp" 
     android:paddingLeft="15dp" 
     android:paddingRight="15dp" /> 
... 
</RelativeLayout> 

抽拉/ selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:drawable="@color/highlight"/> 
    <item android:state_pressed="true" android:drawable="@color/highlight"/> 
</selector> 

score_row_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scoreRowLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:background="@drawable/row_selector" > 
... 
</LinearLayout> 

抽拉/ row_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" android:drawable="@color/highlight" /> 
    <item android:state_activated="true" android:drawable="@color/highlight" /> 
    <item android:drawable="@color/transparent" /> 
</selector> 

此代碼現在可正常工作。

回答

8

嘗試使用state_activated您row_selector。

+0

謝謝,這是有效的。我更新了我的代碼以顯示它。 – GrilledCheese 2013-02-14 05:42:45

+0

@GrilledCheese大,我與兩天前掙扎... – sstn 2013-02-14 05:43:17

+2

如果你想知道,你也可以清除所有的選擇與listview.clearChoices(); 我必須使用這個取消選擇所有行。 – GrilledCheese 2013-02-14 05:47:43