1. Nimm jetzt an unserem AGM - Gewinnspiel teil - Informationen zum M1, A2 und A8 findest Du hier, hier und hier!
  1. Prengepower, 21.03.2011 #1
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Hallo!

    Ich muss bei mir überwachen, ob eine CheckBox verändert wurde. Wenn dies der Fall ist, soll eine AKtion durchgeführt werden - allerdings unterscheidet das dabei, ob die Checkbox aktiviert oder deaktiviert wurde.

    Wollte das so machen:

    Code:
    CheckBoxPreference cb = new CheckBoxPreference(this);
    			cb.setTitle(subject.getTitle());
    			cb.setOnPreferenceClickListener(new OnPreferenceClickListener(){
    
    				@Override
    				public boolean onPreferenceClick(Preference preferences) {
    					if (preferences.isEnabled()){
    						Log.i("Syso", "Abgewählt: "+(String) preferences.getTitle());
    						uncheck.add((String) preferences.getTitle());
    					}else{
    						Log.i("Syso", "Gewählt: "+(String) preferences.getTitle());
    						check.add((String) preferences.getTitle());
    					}
    					return true;
    				}
    				
    			});
            	cb.setChecked(subject.isShow());
    
            	root.addPreference(cb);
    Allerdings sagt er mir immer, dass die Checkbox aktiviert wurde. Glaub das liegt an dem preferences.isEnabled(), allerdings habe ich nichts gefunden, wie ich überprüfe nach z.B. isChecked()..

    Wie kann ich das lösen?

    Danke.
     
  2. maniac103, 21.03.2011 #2
    maniac103

    maniac103 Android-Lexikon

    Wie wär's damit?
    Code:
    CheckBoxPreference check = (CheckBoxPreference) preferences;
    if (check.isChecked())...
    
    oder alternativ cb final machen und im Listener benutzen. ;)