Bob Kelzo
- Forum-Beiträge: 32
09.11.2012, 01:42:07 via Website
09.11.2012 01:42:07 via Website
Hallo Leute,
also ich habe in meiner App eine Activity mit zwei Eingabefeldern und zwei Buttons. Wenn man einen der Buttons drückt werden die beiden Eingabefelder eingelesen und mit den Werten eine neue Activity gestartet. Soweit funktioniert das auch ganz gut. Mein Problem ist nur, dass wenn man die Activity startet, aber anstatt etwas einzugeben und nen Button zu drücken man die Zurück-Taste benutzt, die App mit folgender Fehlermeldung abstürzt:
java.lang.RuntimeException: Unable to destroy Activity: java.lang.NullPointerException
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3314)
Würde ich mich gerade nicht zu blöd anstellen um aus LogCat zu kopieren, würde ich hier auch die gesamte Fehlermeldung einfügen anstatt abzuschreiben. Aber ich denke mal das hier ist der relevante Part.
Hier mal der Code der betreffenden Klasse:
Ich hoffe ihr könnt mir sagen wo mein Fehler liegt. So wie ich mich kenne hab ich bestimmt nur wieder irgendwas banales übersehen
also ich habe in meiner App eine Activity mit zwei Eingabefeldern und zwei Buttons. Wenn man einen der Buttons drückt werden die beiden Eingabefelder eingelesen und mit den Werten eine neue Activity gestartet. Soweit funktioniert das auch ganz gut. Mein Problem ist nur, dass wenn man die Activity startet, aber anstatt etwas einzugeben und nen Button zu drücken man die Zurück-Taste benutzt, die App mit folgender Fehlermeldung abstürzt:
java.lang.RuntimeException: Unable to destroy Activity: java.lang.NullPointerException
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3314)
Würde ich mich gerade nicht zu blöd anstellen um aus LogCat zu kopieren, würde ich hier auch die gesamte Fehlermeldung einfügen anstatt abzuschreiben. Aber ich denke mal das hier ist der relevante Part.
Hier mal der Code der betreffenden Klasse:
1package com.blabla.ausgaben;
2
3import android.app.Activity;
4import android.content.Intent;
5import android.os.Bundle;
6import android.view.View;
7import android.view.View.OnClickListener;
8import android.widget.Button;
9import android.widget.EditText;
10import android.widget.Toast;
11
12public class UpdateActivity extends Activity {
13
14
15
16 private float wert;
17 private String zweck;
18 private AusgabenOpenHandler openHandler;
19 private long id;
20 private int monat;
21 private int jahr;
22
23
24 @Override
25 public void onCreate(Bundle savedInstanceState) {
26 super.onCreate(savedInstanceState);
27 // Parameter des Intents empfangen
28 Intent intent = getIntent();
29 monat = intent.getIntExtra("monat", 0);
30 jahr = intent.getIntExtra("jahr", 0);
31 id = intent.getLongExtra("id", 0);
32 setContentView(R.layout.activity_update);
33 Button einnahmeButton = (Button) findViewById(R.id.einnahmebutton);
34 einnahmeButton.setOnClickListener(new OnClickListener() {
35 public void onClick(View v) {
36 einnahmeButtonClicked();
37 }
38 });
39 Button ausgabeButton = (Button) findViewById(R.id.ausgabebutton);
40 ausgabeButton.setOnClickListener( new OnClickListener() {
41 public void onClick(View v) {
42 ausgabeButtonClicked();
43 }
44 });
45
46 } // Ende onCreate
47
48
49
50 public void einnahmeButtonClicked() {
51 EditText editWert = (EditText) findViewById(R.id.eingabefeld);
52 wert = Float.valueOf(editWert.getText().toString());
53 EditText editZweck = (EditText) findViewById(R.id.zweckfeld);
54 zweck = editZweck.getText().toString();
55 System.out.println(id);
56 System.out.println(wert);
57 System.out.println(zweck);
58 openHandler = new AusgabenOpenHandler(this);
59 openHandler.update(id, wert, zweck);
60 Toast.makeText(this, "Werte geändert", Toast.LENGTH_SHORT).show();
61 Intent intent = new Intent(UpdateActivity.this, TestActivityActivity.class);
62 intent.putExtra("monat", monat);
63 intent.putExtra("jahr", jahr);
64 startActivity(intent);
65 }
66
67
68
69 @Override
70 protected void onDestroy() {
71 openHandler.close();
72 super.onDestroy();
73 }
74
75
76
77 public void ausgabeButtonClicked() {
78 EditText editWert = (EditText) findViewById(R.id.eingabefeld);
79 wert = Float.valueOf(editWert.getText().toString());
80 wert = wert - (2*wert);
81 EditText editZweck = (EditText) findViewById(R.id.zweckfeld);
82 zweck = editZweck.getText().toString();
83 System.out.println(id);
84 System.out.println(wert);
85 System.out.println(zweck);
86 openHandler = new AusgabenOpenHandler(this);
87 openHandler.update(id, wert, zweck);
88 Toast.makeText(this, "Werte geändert", Toast.LENGTH_SHORT).show();
89 Intent intent = new Intent(UpdateActivity.this, TestActivityActivity.class);
90 intent.putExtra("monat", monat);
91 intent.putExtra("jahr", jahr);
92 startActivity(intent);
93 }
94
95} // Ende der Klasse
2
3import android.app.Activity;
4import android.content.Intent;
5import android.os.Bundle;
6import android.view.View;
7import android.view.View.OnClickListener;
8import android.widget.Button;
9import android.widget.EditText;
10import android.widget.Toast;
11
12public class UpdateActivity extends Activity {
13
14
15
16 private float wert;
17 private String zweck;
18 private AusgabenOpenHandler openHandler;
19 private long id;
20 private int monat;
21 private int jahr;
22
23
24 @Override
25 public void onCreate(Bundle savedInstanceState) {
26 super.onCreate(savedInstanceState);
27 // Parameter des Intents empfangen
28 Intent intent = getIntent();
29 monat = intent.getIntExtra("monat", 0);
30 jahr = intent.getIntExtra("jahr", 0);
31 id = intent.getLongExtra("id", 0);
32 setContentView(R.layout.activity_update);
33 Button einnahmeButton = (Button) findViewById(R.id.einnahmebutton);
34 einnahmeButton.setOnClickListener(new OnClickListener() {
35 public void onClick(View v) {
36 einnahmeButtonClicked();
37 }
38 });
39 Button ausgabeButton = (Button) findViewById(R.id.ausgabebutton);
40 ausgabeButton.setOnClickListener( new OnClickListener() {
41 public void onClick(View v) {
42 ausgabeButtonClicked();
43 }
44 });
45
46 } // Ende onCreate
47
48
49
50 public void einnahmeButtonClicked() {
51 EditText editWert = (EditText) findViewById(R.id.eingabefeld);
52 wert = Float.valueOf(editWert.getText().toString());
53 EditText editZweck = (EditText) findViewById(R.id.zweckfeld);
54 zweck = editZweck.getText().toString();
55 System.out.println(id);
56 System.out.println(wert);
57 System.out.println(zweck);
58 openHandler = new AusgabenOpenHandler(this);
59 openHandler.update(id, wert, zweck);
60 Toast.makeText(this, "Werte geändert", Toast.LENGTH_SHORT).show();
61 Intent intent = new Intent(UpdateActivity.this, TestActivityActivity.class);
62 intent.putExtra("monat", monat);
63 intent.putExtra("jahr", jahr);
64 startActivity(intent);
65 }
66
67
68
69 @Override
70 protected void onDestroy() {
71 openHandler.close();
72 super.onDestroy();
73 }
74
75
76
77 public void ausgabeButtonClicked() {
78 EditText editWert = (EditText) findViewById(R.id.eingabefeld);
79 wert = Float.valueOf(editWert.getText().toString());
80 wert = wert - (2*wert);
81 EditText editZweck = (EditText) findViewById(R.id.zweckfeld);
82 zweck = editZweck.getText().toString();
83 System.out.println(id);
84 System.out.println(wert);
85 System.out.println(zweck);
86 openHandler = new AusgabenOpenHandler(this);
87 openHandler.update(id, wert, zweck);
88 Toast.makeText(this, "Werte geändert", Toast.LENGTH_SHORT).show();
89 Intent intent = new Intent(UpdateActivity.this, TestActivityActivity.class);
90 intent.putExtra("monat", monat);
91 intent.putExtra("jahr", jahr);
92 startActivity(intent);
93 }
94
95} // Ende der Klasse
Ich hoffe ihr könnt mir sagen wo mein Fehler liegt. So wie ich mich kenne hab ich bestimmt nur wieder irgendwas banales übersehen
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.