2013-08-23 12 views
5

È possibile eseguire il -soggetto-? In questo momento se ho impostato checkboxInstance.setEnabled(false); la casella di controllo ha la sua "grafica disabilitata", ombreggiata e più trasparente. Quello che sto cercando di fare è esattamente lo stesso, ma ho bisogno di mantenere la casella di controllo attiva.Android: disattivare le caselle di controllo senza modifiche grafiche?

Il motivo è che ho un onClickListener sull'elemento padre. Funziona bene ma sembra che quando la casella di controllo viene toccata, la casella di controllo venga annullata/esclusa senza sparare all'ascoltatore del genitore (e ovviamente vorrei accenderlo sempre).

Grazie!

EDIT: Fondamentalmente sto cercando qualcosa di simile (codice in AS3, naturalmente non c'è la grafica in modo che non sarebbe davvero lavorare ... ma solo la teoria):

var s:Sprite = new Sprite(); 
var cb:Sprite = new Sprite(); //let's assume this is a checkbox 

s.addChild(cb); //cb is inside of the s 
addChild(s); //s is added to the display list 

s.mouseChildren = false; 
s.addEventListener(MouseEvent.CLICK, fireClick); 

//cb could have a mouse listener as well, nothing would happen as s.mouseChildren is set to false 
+0

Io non sono troppo in Android, ma penso che potresti scrivere una vista personalizzata che si estende dalla casella di controllo e sovrascrivere l'evento onClick per non cambiare lo stato della bolla, ma invece passarla al suo genitore (chiamando 'performClick' su di esso). –

risposta

11

Gosh, così facile ... setClickable(false) o android:clickable="false". Questo è tutto.

1

Sì, questo è possibile Quando il cambiamento utente stato di tale casella di controllo chiamata che il codice:

yourcheckbox.setChecked(true); 

o

yourcheckbox.setChecked(false); 
Problemi correlati