2013-08-23 4 views
5

Czy można wykonać -subject-? Teraz, jeśli ustawię checkboxInstance.setEnabled(false);, pole wyboru otrzyma "wyłączoną grafikę", wyszarzone i bardziej przezroczyste. To, co próbuję zrobić, jest dokładnie takie samo, ale muszę zachować pole wyboru aktywne.Android: wyłącz pola wyboru bez zmiany graficznej?

Powodem tego jest fakt, że mam element onClickListener w elemencie nadrzędnym. To działa dobrze, ale wygląda na to, kiedy pole wyboru zostanie dotknięte, pole wyboru zostanie un/sprawdzone bez odpalania słuchacza rodzica (i oczywiście chciałbym to zawsze wywołać).

Dzięki!

EDIT: Zasadniczo szukam czegoś takiego (kod w AS3, oczywiście nie ma grafiki więc nie byłoby naprawdę działa ... ale tylko w teorii):

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

Nie jestem za bardzo na Androida, ale myślę, że można napisać niestandardowy widok rozciągający się od pola wyboru i przesłonić zdarzenie onClick, aby nie zmieniać stanu bańki, ale zamiast tego przekazywać ją do rodzica (przez wywołanie 'performClick' na nim). –

Odpowiedz

11

Boże, tak proste ... setClickable(false) lub android:clickable="false". to jest to!

1

Tak, to jest możliwe. Kiedy zmiana stanu użytkownik tego wyboru nazywają ten kod:

yourcheckbox.setChecked(true); 

lub

yourcheckbox.setChecked(false);