我有ListView
CheckBox
和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()
总是返回false,即使单击CheckBox
并检查它也是如此。可能导致此行为的原因是什么?是的我不想使用setoncheckchangelistener
。请帮助。
答案 0 :(得分:2)
你可以使用
holder.check.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
// perform logic
}
}
});