2

アイテムを選択すると、詳細ビ​​ューに表示されるリストビューがあります。リストビューで選択したアイテムを緑色に変更して表示したい。問題は、同じアイテムを2回クリックするまで、選択したアイテムが緑色で表示されないことです。選択したアイテムが2回クリックされるまで緑色に変化しないのは、何が間違っているのでしょうか。これが私のxmlセレクターファイルです:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<!-- Active list item -->
<item android:state_selected="true"
    android:state_focused="false"
    android:state_pressed="false"
    android:drawable="@drawable/lv_bg_selected" />

<!-- Inactive list item -->
<item android:state_selected="false"
    android:state_focused="false"
    android:state_pressed="false"
    android:drawable="@drawable/lv_bg_unselected_state" />

<!-- Pressed list item --> 
<item android:state_pressed="true" 
    android:drawable="@drawable/lv_bg_pressed_state" />

</selector>

そしてonListitemClick:

@Override
public void onListItemClick(ListView l, View v, int position, long id)
{
 .
 .
 .
 v.setSelected(true);
 .
 .
 .
}
4

1 に答える 1

7

特に最後の項目として、デフォルトの状態をセレクターxmlに追加します。

<selector ...>
   ...
   ...
    <!-- Normal list item --> 
    <item android:drawable="@drawable/lv_bg_normal_state" />
</selector>

アップデート:

セレクターのリストビューでandroid:state_activateを使用し、アイテムがクリックされたときにsetChoiceMode(ListView.CHOICE_MODE_SINGLE)呼び出します。setItemChecked()

getViewandroid.R.layout.simple_list_item_activated_1メソッドを膨らませて、機能させますCHOICE_MODE_SINGLE

詳細については、この投稿を参照してください: リストビューに現在の選択を表示する

于 2012-07-19T17:39:20.540 に答える