0

ListView を使用してアイテムのリストを表示しています。1 つの項目をタップして「選択」すると、その項目がリストで一時的にオレンジ色に変わりますが、その後背景色に戻ります。

(項目をもう一度タップして) 選択を解除するまで項目を「点灯」したままにするにはどうすればよいですか?

また、そのリストで選択したすべての項目をクリアするメソッドを呼び出すことはできますか?

4

2 に答える 2

0

セレクターを使用する必要があり、次に onListItemClick() でsetSelected(true)を使用する必要があります

<?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/orange" />
    <item android:state_selected="false"
        android:drawable="@android:color/list_default" />
</selector>

私の onListItemClick() メソッドもオーバーライドします。

@Override
protected void onListItemClick(ListView l, View view, int position, long id) {
    super.onListItemClick(l, view, position, id);
    view.setSelected(true);
}

EDIT:
public class YourClass extends ListActivity implements OnItemClickListener {

@Override
public void onCreate(Bundle icicle){
    super.onCreate(icicle);
    setContentView(R.layout.your_layout);

    getListView().setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) {
    view.setSelected(true);
}

}

于 2013-04-02T00:43:56.407 に答える
0

州リストが必要です

res/drawable で list_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/orange" />

</selector>  

リストビュー項目のレイアウトで、以下のコードをメイン フレーム レイアウトに追加します。

android:background="@drawable/list_selector"  

orange colorで定義されていることを確認してくださいres/values/colors

于 2013-04-02T00:27:43.610 に答える