2016-07-24 21 views
0
chkSend.setOnClickListener(sendClickListener); 

private OnClickListener sendClickListener = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 

    } 
}; 

Ich muss das Kontrollkästchen deaktiviert, aber ich muss den onclick Benutzer, wie kann ich tun?Android Checkbox kann nicht onclick verwenden, wenn ich enable = false in xml

Ich fand jemand sagte, dass kann funktionieren, aber ich weiß nicht, wie man es benutzt?

public class BtCheckBox extends CheckBox { 
    public BtCheckBox(Context context) { 
     super(context); 
    } 

    public BtCheckBox(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public BtCheckBox(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    public boolean performClick() { 
     return callOnClick(); 
    } 
} 
+0

Ich verstehe nicht. Wie kann ein Kontrollkästchen sowohl deaktiviert als auch Klicks zulassen? – PPartisan

+0

Yeh, ich hatte jemanden gesehen, der das performClick überschreibt und callOnClick() zurückgibt. Aber ich weiß nicht, wie ich es benutzen soll – DonnieHe

Antwort

0

Dies ist nicht möglich, denn wenn Sie das Kontrollkästchen deaktivieren, bedeutet dies, dass es nicht anklickbar ist.

0

Wenn Sie Ihre CheckBox unter bestimmten Bedingungen deaktivieren möchten, können Sie dies auf setOnCheckedChangeListener();

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { 
        if(isChecked) 
        { 
         checkBox.setChecked(false); 
        } 
       } 
      });