App stürzt bei Klick auf Button ab

  • Antworten:33
  • Bentwortet
Kernbeisser
  • Forum-Beiträge: 18

25.06.2018, 22:19:08 via Website

Guten Abend,
Meine App stürzt beim Klicken auf den Button ab.
Bin Neuling in Sachen Programmierung und hoffe einer kann mir helfen.
Habe schon über zwei Stunden das Internet durchstöbert aber noch keine Lösung gefunden.

Hier noch mein Logcat zum absturz:

06-25 20:12:18.108 2635-2635/? I/art: Not late-enabling -Xcheck:jni (already on)
06-25 20:12:18.108 2635-2635/? W/art: Unexpected CPU variant for X86 using defaults: x86
06-25 20:12:18.439 2635-2635/com.quiz.football.fuballquiz W/System: ClassLoader referenced unknown path: /data/app/com.quiz.football.fuballquiz-2/lib/x86
06-25 20:12:18.448 2635-2635/com.quiz.football.fuballquiz I/InstantRun: starting instant run server: is main process
06-25 20:12:18.824 2635-2652/com.quiz.football.fuballquiz I/OpenGLRenderer: Initialized EGL, version 1.4
06-25 20:12:18.824 2635-2652/com.quiz.football.fuballquiz D/OpenGLRenderer: Swap behavior 1
06-25 20:12:18.825 2635-2652/com.quiz.football.fuballquiz W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
06-25 20:12:18.825 2635-2652/com.quiz.football.fuballquiz D/OpenGLRenderer: Swap behavior 0
06-25 20:12:18.845 2635-2652/com.quiz.football.fuballquiz D/EGL_emulation: eglCreateContext: 0xa6fc2f20: maj 2 min 0 rcv 2
06-25 20:12:18.918 2635-2652/com.quiz.football.fuballquiz D/EGL_emulation: eglMakeCurrent: 0xa6fc2f20: ver 2 0 (tinfo 0xa6fbe630)
06-25 20:12:18.932 2635-2652/com.quiz.football.fuballquiz D/EGL_emulation: eglMakeCurrent: 0xa6fc2f20: ver 2 0 (tinfo 0xa6fbe630)
06-25 20:12:43.353 2635-2635/com.quiz.football.fuballquiz D/AndroidRuntime: Shutting down VM

--------- beginning of crash

06-25 20:12:43.354 2635-2635/com.quiz.football.fuballquiz E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.quiz.football.fuballquiz, PID: 2635
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.quiz.football.fuballquiz/com.quiz.football.fuballquiz.Spiel}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.quiz.football.fuballquiz.Spiel.frageLaden(Spiel.java:74)
at com.quiz.football.fuballquiz.Spiel.onCreate(Spiel.java:36)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6077) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 

Vielen Danke an alle!

Liebe Grüße
Pascal

— geändert am 25.06.2018, 22:28:32

Kommentieren
Beste Antwort
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 18:56:06 via Website

Hallo
Der Fehler liegt in deiner Fragen Klasse. In der Liste „fragen“ ist der zweite Eintrag lehr.
Du erstellst eine Variable „frage2[]“ weist aber der Variable frage1[] die Fragen zu.
Somit ist das zweite Add lehr.

private void listeFuellen(){
String[] frage1 = new String[5];
frage1[0] = "Wer wurde 2014 Weltmeister?";
frage1[1] = "Deutschland";
frage1[2] = "Mexico";
frage1[3] = "Spanien";
frage1[4] = "Frankreich";

    String[] frage2 = new String[5];
    frage1[0] = "Wer wurde in der Saison 2017/18 DFB-Pokal Sieger?";
    frage1[1] = "Eintacht Frankfurt";
    frage1[2] = "FC Bayern München";
    frage1[3] = "Borussia Dortmund";
    frage1[4] = "FC Schalke 04";

fragen.add(0, frage1);
fragen.add(1, frage2);

}

besser so

String[] frage2 = new String[5];
frage2[0] = "Wer wurde in der Saison 2017/18 DFB-Pokal Sieger?";
frage2[1] = "Eintacht Frankfurt";
frage2[2] = "FC Bayern München";
frage2[3] = "Borussia Dortmund";
frage2[4] = "FC Schalke 04";

Außerdem ist dein Intent falsch.
Das putExtr musst du auf den Intent ausführen

Intent intent = new Intent(this, Ende.class);
getIntent().putExtra("Punkte", punkte);
startActivity(intent);

Ändern sonnst kommt in der Activity nichts an.

Intent intent = new Intent(this, Ende.class);
intent.putExtra("Punkte", punkte);
startActivity(intent);

ansonsten hat Pascal schon recht mit der Strucktur.
Ich würde die Fragen in einer Datebank speichern. Denk da mal darüber nach.

Warum die App abstürzt weist du jetzt der Fehler dürfe erst bei der zweiten Frage kommen.

— geändert am 26.06.2018, 19:03:42

Hilfreich?
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.959

25.06.2018, 22:35:28 via Website

Hallo und herzlich willkommen im Forum (*)

ComponentInfo{com.quiz.football.fuballquiz/com.quiz.football.fuballquiz.Spiel}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 

Dein TextView wurde nicht richtig bzw. falsch initialisiert - von dir - ohne Code wird es schwer ;-)

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

25.06.2018, 22:39:32 via App

Oh ok Danke schonmal. Welchen Abschnitt bräuchstest du denn? den mit der OnClickMethode noch auf der ersten Activity oder etwas von der zweiten Activity? :)

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

25.06.2018, 22:47:36 via Website

package com.quiz.football.fuballquiz;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;

public class Spiel extends Activity implements View.OnClickListener{

Button btnAntwortEins, btnAntwortZwei, btnAntwortDrei, btnAntwortVier;
TextView tvFrageAnzeigen, tvScore;
int aktuelleFrage =0;
int punkte = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_spiel);

    btnAntwortEins = (Button) findViewById(R.id.btnAntwortEins);
    btnAntwortZwei = (Button) findViewById(R.id.btnAntwortZwei);
    btnAntwortDrei = (Button) findViewById(R.id.btnAntwortDrei);
    btnAntwortVier = (Button) findViewById(R.id.btnAntwortVier);

    tvFrageAnzeigen = (TextView) findViewById(R.id.tVAnzeigeFrage);
    tvScore = (TextView) findViewById(R.id.tVScore);

    btnAntwortEins.setOnClickListener(this);
    btnAntwortZwei.setOnClickListener(this);
    btnAntwortDrei.setOnClickListener(this);
    btnAntwortVier.setOnClickListener(this);
    frageLaden();
}
Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 05:21:19 via Website

Hallo von mir auch ein Willkommen.
Deine beiden textView sehen bis hier hin ok aus . Wenn es auch die Id gibt und gefunden wird.
Sind die views auch in dem aktuell geladenen layut vorhanden?

Wir bräuchten nun die Zeilen wo du etwas mit den textView machst.
tvFrageAnzeigen, tvScore.

LG. J.

— geändert am 26.06.2018, 05:25:15

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 06:57:03 via Website

package com.quiz.football.fuballquiz;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;

public class Spiel extends Activity implements View.OnClickListener{

Button btnAntwortEins, btnAntwortZwei, btnAntwortDrei, btnAntwortVier;
TextView tvFrageAnzeigen, tvScore;
int aktuelleFrage =0;
int punkte = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_spiel);

    btnAntwortEins = (Button) findViewById(R.id.btnAntwortEins);
    btnAntwortZwei = (Button) findViewById(R.id.btnAntwortZwei);
    btnAntwortDrei = (Button) findViewById(R.id.btnAntwortDrei);
    btnAntwortVier = (Button) findViewById(R.id.btnAntwortVier);

    tvFrageAnzeigen = (TextView) findViewById(R.id.tVAnzeigeFrage);
    tvScore = (TextView) findViewById(R.id.tVScore);

    btnAntwortEins.setOnClickListener(this);
    btnAntwortZwei.setOnClickListener(this);
    btnAntwortDrei.setOnClickListener(this);
    btnAntwortVier.setOnClickListener(this);
    frageLaden();
}

private void frageLaden(){
    Fragen fragenC = new Fragen();
    ArrayList<String[]> fragen = fragenC.getFragen();
    String[] frage = fragen.get(aktuelleFrage);

    tvFrageAnzeigen.setText(frage[0]);

    int zufallszahl = (int) (Math.random() * (4-1) + 1);

    switch(zufallszahl){
        case 1:
            btnAntwortEins.setText(frage[1]);
            btnAntwortZwei.setText(frage[2]);
            btnAntwortDrei.setText(frage[3]);
            btnAntwortVier.setText(frage[4]);
            break;
        case 2:
            btnAntwortEins.setText(frage[4]);
            btnAntwortZwei.setText(frage[1]);
            btnAntwortDrei.setText(frage[2]);
            btnAntwortVier.setText(frage[3]);
            break;
        case 3:
            btnAntwortEins.setText(frage[3]);
            btnAntwortZwei.setText(frage[4]);
            btnAntwortDrei.setText(frage[1]);
            btnAntwortVier.setText(frage[2]);
            break;
        case 4:
            btnAntwortEins.setText(frage[2]);
            btnAntwortZwei.setText(frage[2]);
            btnAntwortDrei.setText(frage[4]);
            btnAntwortVier.setText(frage[1]);
            break;
    }
    tvScore.setText("Punkte: " + punkte);
}
Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 08:23:09 via Website

Hallo diese Zuweisungen geht so nicht.

String[] frage = fragen.get(aktuelleFrage);
tvFrageAnzeigen.setText(frage[0]);

Du hast dem Array noch keinen Speicher zugeortnet.
Deshalb ist "fage[0]" auch Null.

Wie siet denn die Methode "fragen" aus gibt die auch ein String Array zurück oder nur einenen String?

String[] frage = new String[4];
frage[0] = fragen.get(aktuelleFrage); // bei einen String
frage = fragen.get(aktuelleFrage); // bei String Array
tvFrageAnzeigen.setText(frage[0]);

— geändert am 26.06.2018, 08:36:21

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 16:00:23 via Website

package com.quiz.football.fuballquiz;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;

public class Spiel extends Activity implements View.OnClickListener{

Button btnAntwortEins, btnAntwortZwei, btnAntwortDrei, btnAntwortVier;
TextView tvFrageAnzeigen, tvScore;
int aktuelleFrage =0;
int punkte = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_spiel);

    btnAntwortEins = (Button) findViewById(R.id.btnAntwortEins);
    btnAntwortZwei = (Button) findViewById(R.id.btnAntwortZwei);
    btnAntwortDrei = (Button) findViewById(R.id.btnAntwortDrei);
    btnAntwortVier = (Button) findViewById(R.id.btnAntwortVier);

    tvFrageAnzeigen = (TextView) findViewById(R.id.tVAnzeigeFrage);
    tvScore = (TextView) findViewById(R.id.tVScore);

    btnAntwortEins.setOnClickListener(this);
    btnAntwortZwei.setOnClickListener(this);
    btnAntwortDrei.setOnClickListener(this);
    btnAntwortVier.setOnClickListener(this);
    frageLaden();
}

private void frageLaden(){
    Fragen fragenC = new Fragen();
    ArrayList<String[]> fragen = fragenC.getFragen();
    String[] frage = fragen.get(aktuelleFrage);

    tvFrageAnzeigen.setText(frage[0]);

    int zufallszahl = (int) (Math.random() * (4-1) + 1);

    switch(zufallszahl){
        case 1:
            btnAntwortEins.setText(frage[1]);
            btnAntwortZwei.setText(frage[2]);
            btnAntwortDrei.setText(frage[3]);
            btnAntwortVier.setText(frage[4]);
            break;
        case 2:
            btnAntwortEins.setText(frage[4]);
            btnAntwortZwei.setText(frage[1]);
            btnAntwortDrei.setText(frage[2]);
            btnAntwortVier.setText(frage[3]);
            break;
        case 3:
            btnAntwortEins.setText(frage[3]);
            btnAntwortZwei.setText(frage[4]);
            btnAntwortDrei.setText(frage[1]);
            btnAntwortVier.setText(frage[2]);
            break;
        case 4:
            btnAntwortEins.setText(frage[2]);
            btnAntwortZwei.setText(frage[2]);
            btnAntwortDrei.setText(frage[4]);
            btnAntwortVier.setText(frage[1]);
            break;
    }
    tvScore.setText("Punkte: " + punkte);
}

@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.btnAntwortEins:
            if (frageAuswerten(btnAntwortEins.getText().toString())){
                punkte++;
            }
            if (aktuelleFrage >=1){
                Intent intent = new Intent(this, Ende.class);
                getIntent().putExtra("Punkte", punkte);
                startActivity(intent);
            }else{
                aktuelleFrage++;
                frageLaden();
            }
            break;
        case R.id.btnAntwortZwei:
            if (frageAuswerten(btnAntwortZwei.getText().toString())){
                punkte++;
            }
            if (aktuelleFrage >=1){
                Intent intent = new Intent(this, Ende.class);
                getIntent().putExtra("Punkte", punkte);
                startActivity(intent);
            }else{
                aktuelleFrage++;
                frageLaden();
            }
            break;
        case R.id.btnAntwortDrei:
            if (frageAuswerten(btnAntwortDrei.getText().toString())){
                punkte++;
            }
            if (aktuelleFrage >=1){
                Intent intent = new Intent(this, Ende.class);
                getIntent().putExtra("Punkte", punkte);
                startActivity(intent);
            }else{
                aktuelleFrage++;
                frageLaden();
            }
            break;
        case R.id.btnAntwortVier:
            if (frageAuswerten(btnAntwortVier.getText().toString())){
                punkte++;
            }
            if (aktuelleFrage >=1){
                Intent intent = new Intent(this, Ende.class);
                getIntent().putExtra("Punkte", punkte);
                startActivity(intent);
            }else{
                aktuelleFrage++;
                frageLaden();
            }
            break;
    }
}

private boolean frageAuswerten(String btnText){
    boolean frage = false;
    Fragen fragenC = new Fragen();
    ArrayList fragen = fragenC.getFragen();
    String[] speicher = (String[]) fragen.get(aktuelleFrage);
    if (speicher[1].equals(btnText)){
        frage = true;
    }
    return frage;
}

}

Wie muss der Code denn abgeändert werden? :)

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 16:19:41 via Website

Und das ist der Quellcode der Klasse "Fragen":

package com.quiz.football.fuballquiz;

import java.util.ArrayList;

public class Fragen {

ArrayList<String[]> fragen;

public Fragen(){
    fragen = new ArrayList<>(2);

    listeFuellen();
}

private void listeFuellen(){
    String[] frage1 = new String[5];
    frage1[0] = "Wer wurde 2014 Weltmeister?";
    frage1[1] = "Deutschland";
    frage1[2] = "Mexico";
    frage1[3] = "Spanien";
    frage1[4] = "Frankreich";

    String[] frage2 = new String[5];
    frage1[0] = "Wer wurde in der Saison 2017/18 DFB-Pokal Sieger?";
    frage1[1] = "Eintacht Frankfurt";
    frage1[2] = "FC Bayern München";
    frage1[3] = "Borussia Dortmund";
    frage1[4] = "FC Schalke 04";

    fragen.add(0, frage1);
    fragen.add(1, frage2);
}

public ArrayList<String[]> getFragen(){
    return fragen;
}

}

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

26.06.2018, 18:01:24 via Website

Hallo Kernbeisser,

nur als Tipp:

Anstatt dir alles in deinem komplexen Konstrukt der List of String[] zu halten würde ich mir ein Fragen Objekt bauen:

public class Frage {

private String frage;
private List<Antwort> antworten;

public Frage(String frage,Antworten... antworten){
  this.frage = frage;
  antworten = new ArrayList<Antwort>(antworten);
  }

public String getFrage(){
   return frage;
   }

 public List<Antwort> getAntworten(){
   return this.antworten;
    }
}

public class Antwort{
  private String antwort;
  private boolean isRight;

public Antwort(String antwort,boolean isRight)[
  this.antwort = antwort;
  this.isRight = isRight;
  }
  //getter+setter...
}

Wenn du das so machst, dann kannst ud dir ganz einfach eine Objekt Struktur daraus bauen:

Frage frage = new Frage("Wie findest du AndroidPit?",new Antwort("super",true),new Antwort("cool",false),new Antwort("toll",false));

zudem kannst du dann über Frage und Antworten iterieren und die in ein paar Zeilen dann auf die UI Elemente setzen :)
Das würde deinen Code schonmal deutlich übersichtlicher machen.

— geändert am 26.06.2018, 18:01:50

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Beste Antwort
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 18:56:06 via Website

Hallo
Der Fehler liegt in deiner Fragen Klasse. In der Liste „fragen“ ist der zweite Eintrag lehr.
Du erstellst eine Variable „frage2[]“ weist aber der Variable frage1[] die Fragen zu.
Somit ist das zweite Add lehr.

private void listeFuellen(){
String[] frage1 = new String[5];
frage1[0] = "Wer wurde 2014 Weltmeister?";
frage1[1] = "Deutschland";
frage1[2] = "Mexico";
frage1[3] = "Spanien";
frage1[4] = "Frankreich";

    String[] frage2 = new String[5];
    frage1[0] = "Wer wurde in der Saison 2017/18 DFB-Pokal Sieger?";
    frage1[1] = "Eintacht Frankfurt";
    frage1[2] = "FC Bayern München";
    frage1[3] = "Borussia Dortmund";
    frage1[4] = "FC Schalke 04";

fragen.add(0, frage1);
fragen.add(1, frage2);

}

besser so

String[] frage2 = new String[5];
frage2[0] = "Wer wurde in der Saison 2017/18 DFB-Pokal Sieger?";
frage2[1] = "Eintacht Frankfurt";
frage2[2] = "FC Bayern München";
frage2[3] = "Borussia Dortmund";
frage2[4] = "FC Schalke 04";

Außerdem ist dein Intent falsch.
Das putExtr musst du auf den Intent ausführen

Intent intent = new Intent(this, Ende.class);
getIntent().putExtra("Punkte", punkte);
startActivity(intent);

Ändern sonnst kommt in der Activity nichts an.

Intent intent = new Intent(this, Ende.class);
intent.putExtra("Punkte", punkte);
startActivity(intent);

ansonsten hat Pascal schon recht mit der Strucktur.
Ich würde die Fragen in einer Datebank speichern. Denk da mal darüber nach.

Warum die App abstürzt weist du jetzt der Fehler dürfe erst bei der zweiten Frage kommen.

— geändert am 26.06.2018, 19:03:42

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 20:16:35 via Website

Vielen Lieben Dank! :)
Eine Frage habe ich noch. Wie soll ich die Datenbank estellen damit diese auch zu einem "QUIZ" passt?

LG
Pascal :)

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 20:44:41 via Website

Wie weit kennst du dich den mit DB aus.
Wenn nicht dann schaue dir dazu ein paar tutorial an . Sowie die Grundlagen von SQL.

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 20:48:27 via Website

Haben in der Schule was mit MySQL Workbench gemacht.

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 21:00:07 via Website

Allerdings habe ich grad gesehen als ich die App ausprobiert habe, dass der Absturz immer noch passiert. :(

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 21:05:59 via Website

Ich weiß nun nicht genau was ich ersetzten soll. Denn ich möchte nichts wichtiges entfernen :(

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 22:01:11 via Website

Bei mir ist es gelaufen.
Wann Stürzt es ab?

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 22:03:48 via App

Ich klicke den Button "Neues Spiel starten" und dann stürzt sie ab.

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 22:05:59 via App

Hast du das von Pascal bei dir schon abgeändert gehabt? Das hatte ich nämlich noch nicht weil ich nicht genau weiß was ich durch was ersetzen soll.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 22:10:58 via Website

Wo in welcher Acivity ist der Button neues Spiel?
Denke in der Ende Activity . Dann zeige mal diese Klasse.

Nein das von Pascal hab ich nicht gemacht ich will die App ja nicht schreiben nur dir helfen.

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 22:12:33 via Website

Nein der Neues Spiel starten ist in der Menue Activity.
Sollte ich das von Pascal machen oder funktioniert es auch so wie ich es bisher habe?

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 22:27:43 via Website

Das musst du wissen.

So wie sieht es in der Menue Activity aus. Wenn es da abstürzt ist auch da der Fehler in den beiden Klassen die du geschickt hast ist es nicht.

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 22:28:37 via Website

package com.quiz.football.fussballquiz;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Menue extends Activity implements View.OnClickListener{

Button btnNeuesSpiel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menue);

    btnNeuesSpiel = (Button) findViewById(R.id.btnNeuesSpiel);
    btnNeuesSpiel.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    Intent intent = new Intent(this, Spiel.class);
    startActivity(intent);
    this.finish();
}

}

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 22:40:27 via Website

Die Kalasse sieht ok aus.
Nur beim Intent von der Spiel Klasse zur Ende wird wohl nicht alles an Speicher freigegen .
Füge nach dem Intent mal ein finish(); ein.
Damit alle Ressourcen freigeben werden wenn das nicht klappt musst du dich selber darum kümmern.

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 22:45:46 via Website

Also zwischen Intent und startActivity?

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

26.06.2018, 22:49:40 via Website

Nein nach startActivity so wie in deiner Menue Klasse.
Wenn du die Activity beendest wie willst du noch den Intent abschicken.

— geändert am 26.06.2018, 22:50:59

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

26.06.2018, 22:51:39 via Website

Bei allen vieren? Oder nur beim letzen?

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

07.07.2018, 12:14:56 via Website

Hi Sory habe dich scheinbar vergessen.
Bei allen Vieren natürlich. Hoffe es hilft noch.
Dachte ich hätte geschrieben. Da hat das Handy wider mal nicht mit gemacht.
Denke aber du hast es selber raus gefunden.
J.

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

07.07.2018, 13:27:32 via Website

Kein Problem. habe es eh ausprobiert bei einem und bei allen vieren. Aber es hat weder bei einem noch bei vier funktioniert :(

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

07.07.2018, 14:22:33 via Website

Komisch wie war das nochmal stürzt erst bei der zweien frage ab. Oder

Hilfreich?
Kommentieren
Kernbeisser
  • Forum-Beiträge: 18

07.07.2018, 14:24:31 via Website

Nein, wenn ich auf den Button "Spiel starten" klicke dann direkt. Also es kommt gar nicht zur ersten Frage. Also beim Übergang in die zweite Activity stürzt es ab.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

07.07.2018, 16:02:13 via Website

Also von der Main zur Spiel activity. Zeige mal wie du den Intent in der Main machst und auch wie du den Button inizalisierst.
Ist die Activity auch im Manifest ein getragen?
Wie sieht die zweite activity aus?
Hoffe du machst keine Variablen Zuweisungen Instanzen im Klassenrumpf.

— geändert am 07.07.2018, 16:06:39

Hilfreich?
Kommentieren