ListView中的CheckBox setonclicklistener无法正常工作

时间:2012-11-22 09:25:42

标签: android listview checkbox onitemclicklistener ischecked

我有ListView CheckBoxTextView。在我的适配器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()总是返回false,即使单击CheckBox并检查它也是如此。可能导致此行为的原因是什么?是的我不想使用setoncheckchangelistener。请帮助。

1 个答案:

答案 0 :(得分:2)

你可以使用

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

    }
});