Więc jeśli dam tą samą pętle co mam po kliknięciu :
Spoiler
loadData();
TextView pokazujekoszt = findViewById(R.id.wynikkoszt);
TextView pokazujedystans = findViewById(R.id.wynikdystans);
Float calyKoszt = 0.0f;
Float calyDystans = 0.0f;
for(Dane danaZListy: listaDanych) {
calyKoszt = calyKoszt + danaZListy.getKoszt();
calyDystans = calyDystans + danaZListy.getDystans();
}
String str1 = calyKoszt.toString();
pokazujekoszt.setText(str1);
String str2 = calyDystans.toString();
pokazujedystans.setText(str2);
Pokazuje mi:
Spoiler
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aplikacja, PID: 23544
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aplikacja/com.example.aplikacja.Main2Activity}: 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:3303)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
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.example.aplikacja.Main2Activity.onCreate(Main2Activity.java:49)
at android.app.Activity.performCreate(Activity.java:7383)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
Natomiast jeśli dodam to moje sprawdzenie Stringa, to Activity się nie włącza, bo dla mnie jest ten else, kod wygląda:
Spoiler
loadData();
TextView pokazujekoszt = findViewById(R.id.wynikkoszt);
TextView pokazujedystans = findViewById(R.id.wynikdystans);
Float calyKoszt = 0.0f;
Float calyDystans = 0.0f;
for(Dane danaZListy: listaDanych) {
calyKoszt = calyKoszt + danaZListy.getKoszt();
calyDystans = calyDystans + danaZListy.getDystans();
}
String str1 = calyKoszt.toString();
String str2 = calyDystans.toString();
if (str1.isEmpty() && str2.isEmpty()){
pokazujekoszt.setText(str1);
pokazujedystans.setText(str2);
}
else {
pokazujekoszt.setText(str1);
pokazujedystans.setText(str2);
}
To mam :
Spoiler
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aplikacja, PID: 24241
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aplikacja/com.example.aplikacja.Main2Activity}: 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:3303)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
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.example.aplikacja.Main2Activity.onCreate(Main2Activity.java:56)
at android.app.Activity.performCreate(Activity.java:7383)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
A tutaj niecrashujetylko się włącza 😉
Spoiler
loadData();
TextView pokazujekoszt = findViewById(R.id.wynikkoszt);
TextView pokazujedystans = findViewById(R.id.wynikdystans);
Float calyKoszt = 0.0f;
Float calyDystans = 0.0f;
for(Dane danaZListy: listaDanych) {
calyKoszt = calyKoszt + danaZListy.getKoszt();
calyDystans = calyDystans + danaZListy.getDystans();
}
String str1 = calyKoszt.toString();
String str2 = calyDystans.toString();
if (str1.isEmpty() || str2.isEmpty()){
pokazujekoszt.setText(str1);
pokazujedystans.setText(str2);
}
Nie ma tegoelse,i nie pokazuje żadnego błędu... ?Tylko jak pisałem, nie podlicza tego co mam, jak wrócę z powrotem do tego Activity, to podsumowanie znika ?