1

私は持っています:

public class MyList extends ListActivity {
    SimpleAdapter simpleAdapter;

へのバインドは、ListViewによって行われますViewBinder:

    simpleAdapter = new SimpleAdapter(this, getData(path),
            R.layout.menu_row, new String[] { 
        ..., "checked" }, new int[] {..., R.id.checkBox1 });

    SimpleAdapter.ViewBinder viewBinder = new SimpleAdapter.ViewBinder() {
        @Override
        public boolean setViewValue(View view, Object data,
                String textRepresentation) {
            if (view.getId() == R.id.checkBox1) {
                                CheckBox checkBox = (CheckBox) view;
                checkBox.setChecked(Boolean.parseBoolean((String) data));

私の xml は次のようになり、行が 1 つとして表示されるのclickablefocusable役立ちます。

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:clickable="false"
    android:focusableInTouchMode="false"
     />

私も持っています:

protected void onListItemClick(ListView l, View v, int position, long id) {

これはクリックイベントと相互作用します。これはこれまでのところうまくいきます。私の問題は、行をクリックしてもCheckBox視覚的な状態が変わらないことです。私に何ができる?

4

2 に答える 2

1

あなたが調べたいのCheckedTextViewは、チェックボックスを表示し、リスト項目をクリックするとチェックボックスが変化することだと思います

于 2012-05-18T20:41:05.237 に答える
0

onListItemClick button.setChecked(true)(または setChecked を使用して前後に切り替えるコード) を挿入します。

編集

あなたの問題を誤解しました。データセットが変更されたことをアダプターに伝えましたか?

于 2012-05-18T21:11:56.457 に答える