0

我有一个ListViewwithCheckBox和一个TextView. 在我的适配器getView()方法中,我在复选框上实现了这个监听器。

holder.check.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            HashMap<String, String> localMap = (HashMap<String, String>) holder.check
                    .getTag();
            if (holder.check.isChecked()) {
                trackinglist.add(localMap.get("taskid"));
                checkedlist.add(localMap.get("taskid"));
            } else {
                if (trackinglist.contains(localMap.get("taskid"))) {
                    trackinglist.remove(localMap.get("taskid"));
                }
                if (alreadycheckedlist.contains(localMap.get("taskid"))) {
                    undonelist.add(localMap.get("taskid"));
                    alreadycheckedlist.remove(localMap.get("taskid"));
                } else {
                    checkedlist.remove(localMap.get("taskid"));
                }
            }

        }
    });

现在我的问题是holder.check.isChecked()即使CheckBox单击并选中它也总是返回false。什么可能导致这种行为?是的,我不想使用setoncheckchangelistener. 请帮忙。

4

1 回答 1

1

你可以使用

holder.check.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {
            // perform logic
        }

    }
});
于 2012-11-22T09:36:17.990 回答