Zum Inhalt springen
  • 0

Android Studio: Zwei setOnCLickListener


Frage

Geschrieben

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);
    }
}

 

5 Antworten auf diese Frage

Empfohlene Beiträge

  • 1
Geschrieben

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.

  • 0
Geschrieben
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.

  • 0
Geschrieben

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);
    }
}

 

  • 0
Geschrieben (bearbeitet)
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 von pr0gg3r

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...