S
Schmucus
Fortgeschrittenes Mitglied
- 27
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:
Code:
package com.blabla.ausgaben;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class UpdateActivity extends Activity {
private float wert;
private String zweck;
private AusgabenOpenHandler openHandler;
private long id;
private int monat;
private int jahr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Parameter des Intents empfangen
Intent intent = getIntent();
monat = intent.getIntExtra("monat", 0);
jahr = intent.getIntExtra("jahr", 0);
id = intent.getLongExtra("id", 0);
setContentView(R.layout.activity_update);
Button einnahmeButton = (Button) findViewById(R.id.einnahmebutton);
einnahmeButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
einnahmeButtonClicked();
}
});
Button ausgabeButton = (Button) findViewById(R.id.ausgabebutton);
ausgabeButton.setOnClickListener( new OnClickListener() {
public void onClick(View v) {
ausgabeButtonClicked();
}
});
} // Ende onCreate
public void einnahmeButtonClicked() {
EditText editWert = (EditText) findViewById(R.id.eingabefeld);
wert = Float.valueOf(editWert.getText().toString());
EditText editZweck = (EditText) findViewById(R.id.zweckfeld);
zweck = editZweck.getText().toString();
System.out.println(id);
System.out.println(wert);
System.out.println(zweck);
openHandler = new AusgabenOpenHandler(this);
openHandler.update(id, wert, zweck);
Toast.makeText(this, "Werte geändert", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UpdateActivity.this, TestActivityActivity.class);
intent.putExtra("monat", monat);
intent.putExtra("jahr", jahr);
startActivity(intent);
}
// testet ob die Textfelder funktionieren
public void test() {
EditText editWert = (EditText) findViewById(R.id.eingabefeld);
EditText editZweck = (EditText) findViewById(R.id.zweckfeld);
String blabla = editWert.getText().toString();
editZweck.setText(blabla);
}
@Override
protected void onDestroy() {
openHandler.close();
super.onDestroy();
}
public void ausgabeButtonClicked() {
EditText editWert = (EditText) findViewById(R.id.eingabefeld);
wert = Float.valueOf(editWert.getText().toString());
wert = wert - (2*wert);
EditText editZweck = (EditText) findViewById(R.id.zweckfeld);
zweck = editZweck.getText().toString();
System.out.println(id);
System.out.println(wert);
System.out.println(zweck);
openHandler = new AusgabenOpenHandler(this);
openHandler.update(id, wert, zweck);
Toast.makeText(this, "Werte geändert", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UpdateActivity.this, TestActivityActivity.class);
intent.putExtra("monat", monat);
intent.putExtra("jahr", jahr);
startActivity(intent);
}
} // 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

Zuletzt bearbeitet: