L
LarsBadm31
Neues Mitglied
- 0
Hallo liebe Community,
ich habe folgenden Code in Android Studio geschrieben. Im Editor wird mir auch kein Fehler angezeigt. Wenn ich nun allerdings die App auf meinem Handy ausführen lasse, stürzt diese ab, sobald ich auf den Speicher-Button drücke. Kann mir einer sagen wo der Fehler liegt?
Danke schonmal im Vorraus
ich habe folgenden Code in Android Studio geschrieben. Im Editor wird mir auch kein Fehler angezeigt. Wenn ich nun allerdings die App auf meinem Handy ausführen lasse, stürzt diese ab, sobald ich auf den Speicher-Button drücke. Kann mir einer sagen wo der Fehler liegt?
Danke schonmal im Vorraus
Code:
package de_larsd.abrechnung;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.Spinner;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class NeuerEintragAcitivity extends AppCompatActivity {
Context cxt = this;
Spinner spinner;
Button btnSpeichern;
DatePicker dp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_neuer_eintrag_acitivity);
//Initalisierung Spinner
spinner = (Spinner) findViewById(R.id.spinner);
String [] times = {"1","1.5", "2"};
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, times);
spinner.setAdapter(adapter);
//Initalisierung Button
btnSpeichern = (Button) findViewById(R.id.btnSpeichern);
btnSpeichern.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double gehalt = berechneGehalt();
//String datum = getDatum();
speicher(gehalt);
}
});
}
private boolean saveToFile(String dateiname, String text){
//Wahrheitswert, um zu prüfen, ob das Speichern erfolgreich war
boolean b = true;
FileOutputStream fos = null;
try {
//Öffne privaten FileOutputStream
fos = cxt.openFileOutput(dateiname, Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
//Fehler beim Speichern
b = false;
}
try {
//Schreibe Text in die Datei
fos.write(text.getBytes());
} catch (IOException e) {
//Fehler beim Speichern
b = false;
}
try {
//Schließe den FileOutputStream
fos.close();
} catch (IOException e) {
//Fehler beim Speichern
b = false;
}
return b;
}
private String readFromFile(String dateiname){
String a = "";
try {
FileInputStream fis = cxt.openFileInput(dateiname);
try {
byte b[] = new byte[(int) fis.getChannel().size()];
fis.read(b);
a = new String(b);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return a;
}
public double berechneGehalt() {
String zwischen = spinner.getSelectedItem().toString();
Double zeit = Double.valueOf(zwischen);
double ende = zeit * 7.5;
return ende;
}
public String getDatum() {
int tag, monat, jahr;
String datum;
tag = dp.getDayOfMonth();
monat = dp.getMonth();
jahr = dp.getYear();
datum = tag + "-" + monat + "-" + jahr;
return datum;
}
public void speicher(double gehalt) {
//neuen Wert in summe.txt speichern
String alter = readFromFile("summe.txt");
double alt = Double.valueOf(alter);
double neu = alt * gehalt;
String sp = String.valueOf(neu);
if(saveToFile("summe.txt", sp) == true) {
Toast.makeText(getApplicationContext(), "Gespeichert", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(getApplicationContext(), "Ein Fehler ist aufgetreten", Toast.LENGTH_SHORT).show();
}
}
}