Rechen Operation stürzt ab

  • Antworten:11
  • Bentwortet
Kemal Ince
  • Forum-Beiträge: 47

17.06.2018, 12:18:17 via Website

Hi,

ich habe einen Code geschrieben aber das Programm stürzt immer ab woran liegt das?

    int a;
    a = 16;

    int b = 20;

    int testTest = a + b;

    System.out.println(a);
    //Toast.makeText(getApplicationContext(), a, Toast.LENGTH_LONG).show();
    TextView testView = findViewById(R.id.ergebnisGeburtstag);
    testView.setText(testTest);

Danke im Voraus!

Kommentieren
Kemal Ince
  • Forum-Beiträge: 47

17.06.2018, 12:23:40 via Website

Wenn ich den Code so änder:

    int a;
    a = 16;

    int b = 20;

    int testTest = a + b;

    System.out.println(testTest);
    //Toast.makeText(getApplicationContext(), testTest, Toast.LENGTH_LONG).show();
    //TextView testView = findViewById(R.id.ergebnisGeburtstag);
    //testView.setText(testTest);

Dann funktioniert das, aber dann wird es nicht dem User ausgegeben.

Hilfreich?
Kommentieren
Kemal Ince
  • Forum-Beiträge: 47

17.06.2018, 12:28:01 via Website

Ich bekomme das ausgegeben, wenn die App abstürzt:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.eyyup.mustafaturhan, PID: 10774
              java.lang.IllegalStateException: Could not execute method for android:onClick
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:389)
                  at android.view.View.performClick(View.java:6199)
                  at android.widget.TextView.performClick(TextView.java:11090)
                  at android.view.View$PerformClick.run(View.java:23647)
                  at android.os.Handler.handleCallback(Handler.java:751)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6682)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
               Caused by: java.lang.reflect.InvocationTargetException
                  at java.lang.reflect.Method.invoke(Native Method)
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384)
                  at android.view.View.performClick(View.java:6199) 
                  at android.widget.TextView.performClick(TextView.java:11090) 
                  at android.view.View$PerformClick.run(View.java:23647) 
                  at android.os.Handler.handleCallback(Handler.java:751) 
                  at android.os.Handler.dispatchMessage(Handler.java:95) 
                  at android.os.Looper.loop(Looper.java:154) 
                  at android.app.ActivityThread.main(ActivityThread.java:6682) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
               Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x24
                  at android.content.res.Resources.getText(Resources.java:1178)
                  at android.widget.TextView.setText(TextView.java:5163)
                  at com.example.eyyup.mustafaturhan.MainActivity.recheGeburtsdatum(MainActivity.java:44)
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384) 
                  at android.view.View.performClick(View.java:6199) 
                  at android.widget.TextView.performClick(TextView.java:11090) 
                  at android.view.View$PerformClick.run(View.java:23647) 
                  at android.os.Handler.handleCallback(Handler.java:751) 
                  at android.os.Handler.dispatchMessage(Handler.java:95) 
                  at android.os.Looper.loop(Looper.java:154) 
                  at android.app.ActivityThread.main(ActivityThread.java:6682) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

Application terminated.

Hilfreich?
Kommentieren
Kemal Ince
  • Forum-Beiträge: 47

17.06.2018, 12:58:09 via Website

Funktioniert danke !

Hilfreich?
Kommentieren
Kemal Ince
  • Forum-Beiträge: 47

17.06.2018, 13:06:06 via Website

Was ist dann hier mein Fehler? Ist das nicht das selbe Prinzip?

        // Jahr def. + String
    EditText heutigesJahr = findViewById(R.id.heutigesJahr);
    int heutigesJahrString = Integer.valueOf(heutigesJahr.getText().toString());

    // Monat def. + String
    EditText heutigerMonat = findViewById(R.id.heutigerMonat);
    int heutigerMonatString = Integer.valueOf(heutigerMonat.getText().toString());

    // Tag def. + String
    EditText heutigerTag = findViewById(R.id.heutigerTag);
    int heutigerTagString = Integer.valueOf(heutigerTag.getText().toString());


    int ergebnisJahr = heutigesJahrString - 2005;
    int ergebnisMonat= heutigerMonatString - 3;
    int ergebnisTag = heutigerTagString - 25;

    //Toast.makeText(getApplicationContext(), ergebnisJahr, Toast.LENGTH_LONG).show();
    //Toast.makeText(getApplicationContext(), ergebnisMonat, Toast.LENGTH_LONG).show();
    //Toast.makeText(getApplicationContext(), ergebnisTag, Toast.LENGTH_SHORT).show();

    TextView ergebnisJahrText = findViewById(R.id.ergebnisGeburtstag);
    //ergebnisJahrText.setText(ergebnisJahr + "Jahre!");
    ergebnisJahrText.setText(Integer.toString(heutigesJahr) - 2005);
Hilfreich?
Kommentieren
Kemal Ince
  • Forum-Beiträge: 47

17.06.2018, 17:44:42 via Website

Ist anscheind der selbe Code wie oben weil ich diese Nachricht bekomme: „Deine Nachricht wurde zurückgewiesen, da Du kürzlich eine andere Nachricht mit zum Teil identischem Inhalt gepostet hast."

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

17.06.2018, 19:11:17 via App

Ddr ErrorLog ist aber != Code ;)

Schau dir mal LogCat an, was da Rot ist.

— geändert am 17.06.2018, 19:11:25

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

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

18.06.2018, 07:37:38 via Website

Hallo mische mich hier mal ein.
also die „setText()“ Methode erwartet einen String du übergibst einen „int“ und keinen „String“.

Ludy hat dir gezeigt wie man einen “int“ in einen „String“ umwandelt.

Probier mal so
testView.setText(Integer.toString(testTest));

bei deinem letzten Code

ergebnisJahrText.setText(Integer.toString(heutigesJahr) - 2005);

muss das Jahr "-2005" mit in die Klammer
ergebnisJahrText.setText(Integer.toString(heutigesJahr - 2005));

— geändert am 18.06.2018, 08:19:02

Hilfreich?
Kemal Ince
Kommentieren
Kemal Ince
  • Forum-Beiträge: 47

18.06.2018, 17:05:03 via Website

Danke, das hat geholfen. Kann man nicht mehrere Strings in einem ausgeben lassen?

Mein Code:

// Textausgabe
    TextView ergebnisJahrText = findViewById(R.id.ergebnisGeburtstag);
    ergebnisJahrText.setText(Integer.toString(ergebnisJahr) + "Jahr, " Integer.toString(ergebnisMonat) + "Monate und " Integer.toString(ergebnisTag) + "Tage!");
Hilfreich?
Kommentieren
Kemal Ince
  • Forum-Beiträge: 47

18.06.2018, 17:15:27 via Website

Kemal Ince

Danke, das hat geholfen. Kann man nicht mehrere Strings in einem ausgeben lassen?

Mein Code:

// Textausgabe
    TextView ergebnisJahrText = findViewById(R.id.ergebnisGeburtstag);
    ergebnisJahrText.setText(Integer.toString(ergebnisJahr) + "Jahr, " Integer.toString(ergebnisMonat) + "Monate und " Integer.toString(ergebnisTag) + "Tage!");

hat sicher erledigt habe das + da zwischen vergessen, mein jetzige Code:

ergebnisJahrText.setText(Integer.toString(ergebnisJahr) + " Jahre, " + Integer.toString(ergebnisMonat) + " Monate und " +Integer.toString(ergebnisTag) + " Tage!");
Hilfreich?
Kommentieren