1

ListView指定する がありますlistSelector:

<ListView
        android:id="@+id/listView"
        android:listSelector="@drawable/list_selector"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

すべてのリスト項目には次のものがありCheckedTextViewます。

 <CheckedTextView
        android:id="@+id/checkedTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CheckedTextView" />

リストから行をクリックすると、クリックされたアイテムがチェックされたままになる必要があります。これが私のやり方です:

listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setOnItemClickListener(this);
// .... 
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    CheckedTextView checkedTextView = (CheckedTextView) view.findViewById(R.id.checkedTextView);
    checkedTextView.setChecked(true);
}

Android 4.0 では正常に動作しますが、Android 2.3 では動作しません。なぜこれが起こっているのか、手がかりを教えていただければ幸いです。

4

1 に答える 1

0

なぜそれが起こっているのかわかりませんが、別の方法で実装する考えがあります

カスタムアダプターを使用してリストアイテムをロードしていると仮定します

カスタム アダプターでのビューの作成時に、CheckedTextView の OnClickListener を設定します。

final CheckedTextView ct = (CheckedTextView) view
                .findViewById(R.id.checkedTextView);
ct.setText("text");
ct.setOnClickListener(new OnClickListener() {           
    @Override
    public void onClick(View v) {
        // do what ever you want to perform here
        if(ct.isChecked()){

        } else {

        }
    }
});

ここで別のオプション

于 2013-05-03T12:47:45.233 に答える