2012-11-22 46 views
0

我有一個ListViewCheckBoxTextView。在我的適配器getView()方法中,我在複選框上實現了此偵聽器。ListView中的複選框setonclicklistener無法正常工作

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")); 
       } 
      } 

     } 
    }); 

現在我的問題是在點擊CheckBox和檢查,即使該holder.check.isChecked()始終返回false。什麼可能導致這種行爲?是的,我不想使用setoncheckchangelistener。請幫忙。

+1

爲什麼不ü直接使用視圖V? – e7fendy

+0

我該怎麼做?請給我一些例子。 – Ashwani

+0

複選框cb =(複選框)v; – e7fendy

回答

2

您可以使用

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

    } 
}); 
+0

請閱讀問題的最後一行。每當選中的值更改時都會調用此方法。我希望它只有在用戶點擊支票時纔會被解僱。 – Ashwani

相關問題