CheckBox不会改变状态

时间:2012-05-18 20:18:13

标签: android android-listview android-viewbinder

我有一个:

public class MyList extends ListActivity {
    SimpleAdapter simpleAdapter;

绑定到ListViewViewBinder

完成
    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看起来像这样,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) {

与click事件交互。到目前为止,这项工作很好,我的问题是 当我点击一行时,CheckBox不会改变其视觉状态。我该怎么办?

2 个答案:

答案 0 :(得分:1)

我认为您要查看的内容是CheckedTextView,其中显示一个复选框,单击列表项时,复选框会更改

答案 1 :(得分:0)

button.setChecked(true)放在onListItemClick上(或使用setChecked来回切换代码)。

修改

误解了你的问题。您是否告诉适配器数据集已更改?