Hallo,
ich entwickle gerade eine kleine App, bei der eine Zahl eingegeben werden soll. Dann wird mit dieser Zahl ein bisschen gerechnet und dann schließlich das Ergebnis auf 2 Nachkommastellen gerundet ausgegeben. Das Problem ist jetzt das Zahlenformat.
Für das Eingabetextfeld habe ich die Eigenschaft
gesetzt, damit nicht die Buchstabentastatur sondern direkt die Zahlentastatur angezeigt wird. Hier schon das erste Problem: Auch mit deutschem Spracheinstellungen kann man kein Komma einfügen, nur einen Punkt.
Das Anzeigen des Ergebnisses habe ich so gemacht:
public java.text.DecimalFormat Df = new java.text.DecimalFormat("0.00");
Anzeige.setText(Df.format(Ergebnis));
Komischerweise wird bei deutschen Spracheinstellungen das Ergebnis jetzt mit Komma statt mit Punkt ausgegeben!
Am Ende wird das Ergebnis gespeichert:
SharedPreferences settings = getSharedPreferences(Gespeichert,0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("Inhalt",Df.format(Ergebnis));
Das größte Problem besteht jetzt beim Laden. Denn wenn das Ergebnis eine ganze Zahl war, funktioniert das Laden. Wenn aber eine Kommazahl gespeichert wurde, stürzt die App ab. Ich vermute, dass das Konvertieren des Strings mit der Kommazahl (statt von Java erwartetem Punkt) in eine Double-Variable nicht funktioniert.
Hier noch der Code des Ladens:
SharedPreferences settings = getSharedPreferences(Gespeichert,0);
Ergebnis = Double.valueOf(settings.getString("Inhalt","0"));
Anzeige.setText(nf.format(Ergebnis));
Es wäre super, wenn ihr mir helfen könntet. Es braucht eigentlich nur für Deutsch (also mit Komma) zu funktionieren. Perfekt wäre es natürlich variabel je nach Ländereinstellung.
Viele Grüße!