Programm stürzt bei Definieren von OnCheckedChangeLister ab

  • Hallo Community,
    ich habe vor kurzem mit der Android-Programmierung angefangen und stehe jetzt vor einem Problem.


    Ich habe in einer View eine Checkbox, welche bei Aktivierung einen TimePicker öffnet.
    Für die Realisierung benutze ich den Compound.onCheckedChangeListener.
    Sobald ich diesen aber einer Checkbox zuordne, startet das Programm nicht mehr (Meldung: "Die Anwendung wurde unerwartet beendet. Versuchen Sie es erneut. Lasse ich die Definition des Listeners weg, läuft das Programm.


    Hier der Code:


    Ich habe es auch schon mit CompoundButton.onCheckedChangeListener probiert, gleiches Ergebnis.
    Kann mir jemand helfen?
    Ich benutze übrigens Android 2.1.


    Edit:
    Habe es auch soeben mit einem onclickListener versucht, App stürzt hierbei auch ab.

    Java
    startCheckBox.setOnClickListener(new View.OnClickListener() {
    	 	
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				
    				startTp.setVisibility(TimePicker.VISIBLE);
    				
    			}
    		});
  • Was für eine Fehlermeldung erscheint denn im LogCat von Eclipse??


    Falls du an den IDs in der layout.xml etwas geändert hast, dann bitte einmal die Manifest-Datei neu speichern - dann werden die IDs neu durchgerechnet.

  • Der Fehler ist:



    Das bedeutet also, dass das initialiseren der Checkbox nicht geklappt hat. Habe die manifest neu gespeichert und es kommt trotzdem das Problem. In Eclipse selber kommen keine Fehler.


    Des Weiteren sind alle TextViews und Objekte = null, aber ich verstehe nicht, warum :(



    EDIT:
    Ganz blöde Sache, hab die Ursache gefunden!
    Der Fehler war, dass ich findViewById vor setContentView() aufgerufen habe..

  • Ich habs mir mal nachgebaut und auch erst 'ne Weile gesucht - eigentlich ganz einfach, wenn man genau hinschaut (ich war auch blind). :-/


    NullPointerExeption bekommst du, weil zum Zeitpunkt von init() noch gar kein View geladen wurde - die findViewById bleiben leer.


    Du musst erst setContentView(R.layout.main); aufrufen (direkt nach super.onCreate(savedInstanceState);) und dann kannst du im init() die View-Elemente finden...

    Java
    public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.test);
    		init();
    	}

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!