Veröffentlicht 17. April 20187 j Hallo Community, ich schreibe eine Java App für Android. Es soll ein Ausgaben Manager werden. In der MainActivity gibt es einen Button "Hinzufügen" auf dem ein SetOnClickListener wacht. Dieser funktioniert auch. Dort den Druck des Knopfes wird der setContentView auf eine zweite Activity gesetzt, die ebenfalls einen Button "Speichern" mit einem SetOnClickListener hat. Aber immer wenn ich die Anwendung startet, bricht sie ab OHNE FEHLERMELDUNG. Ich habe mal versucht, die zweite SetOnClickListener auszuschalten und dann läuft die App. Bitte um Hilfe. Hier der Sourcecode: package de.mariogundlach.brgr.ausgabenmanager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.util.Log; import static de.mariogundlach.brgr.ausgabenmanager.R.layout.add_data; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Init all Elements Button btn_hinzufügen = (Button) findViewById(R.id.btn_add); Button btn_speichern = (Button) findViewById(R.id.btn_speichern); btn_hinzufügen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { open_add_data(); } }); btn_speichern.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Info","Say Hello"); } }); } public void open_add_data() { setContentView(add_data); } }
17. April 20187 j Bin nicht mehr so drin in Android, aber bist du dir sicher, dass du auf den Button in der anderen View überhaupt zugreifen kannst an der Stelle? Ich würde spontan einfach mal behaupten, dass du eine NullReferenceException bekommst, wenn du versuchst, auf dem Button den Listener zu registrieren.
17. April 20187 j vor 7 Stunden schrieb mintmaroo: Aber immer wenn ich die Anwendung startet, bricht sie ab OHNE FEHLERMELDUNG. Kann nicht sein. Ich vermute, dass du entweder einen toten Thread auf deinem Device/Emulator beobachtest oder das Logging auf "info" oder irgendwas gestellt hast, aber nicht auf "error". vor 7 Stunden schrieb mintmaroo: setContentView(add_data); Ich würde zwischen Views nicht wechseln und nur das andere Layout setzen sondern, eine eigene Activity erstellen und per Intent darauf wechseln.
18. April 20187 j Autor Also mein aktueller Stand ist: Ich habe eine neue Activity angelegt über das Android Studio mit Klick auf java/classes ... Und jetzt habe ich ein zweites Layout und eine zweite Activity. Das war der erste Fehler, den ich behoben habe. Als zweites muss ich einen Intent anlegen, das habe ich nachgelesen. Gesagt, getan. Jedoch stürzt die App nach dem Start ab, mit folgendem Fehler: 11:12 Emulator: emulator: WARNING: UpdateCheck: Failure: Error 11:12 Emulator: emulator: WARNING: UpdateCheck: Failure: Error 11:12 Emulator: qemu-system-i386.exe: Unable to open C:\Users\brgr\.android\avd\Nexus_5X_API_24.avd\data\misc\pstore\pstore.bin: Permission denied Der Quellcode schaut aus wie folgt: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Init all Elements Button btn_hinzufügen = (Button) findViewById(R.id.btn_add); btn_hinzufügen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { open_add_data(); } }); } public void open_add_data() { Intent i = new Intent(this, AddingActivity.class); startActivity(i); //setContentView(R.layout.activity_adding); } }
18. April 20187 j vor 13 Minuten schrieb mintmaroo: 11:12 Emulator: emulator: WARNING: UpdateCheck: Failure: Error 11:12 Emulator: emulator: WARNING: UpdateCheck: Failure: Error 11:12 Emulator: qemu-system-i386.exe: Unable to open C:\Users\brgr\.android\avd\Nexus_5X_API_24.avd\data\misc\pstore\pstore.bin: Permission denied Das ist ja ein Emulator-Problem und kein Problem deiner App. Entferne mal den Emulator im AVD-Manager und lege es neu an und aktiviere auch HAXM. Dann auch am besten den Build-Cache leeren (clean). Bearbeitet 18. April 20187 j von pr0gg3r
18. April 20187 j Autor public void open_add_data() { Intent i = new Intent(this, AddingActivity.class); startActivity(i); } Problem ist gelöst. Mit folgendem Quellcode:
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.