2012-04-01 21 views
0

Ich weiß, wie Zeichenfolge aus EditTexts auf Android zu speichern, aber mein Problem ist: Ich muss die Anzahl der Stunden speichern, die jemand gearbeitet hat ... Dies ist ein Abschnitt des Codes, den ich getan habe .. Bei der Methode toInt ist ein Fehler aufgetreten.Speichern von Ganzzahlen mit SharedPreferences in Android

try { 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putInt("Hours",edit_hours.getText().toInt()); 
    editor.commit(); 

    trying_to_save.setText("SAVED!"); 
} 
catch (Exception e) { 
    trying_to_save.setText("I crashed"); 
} 

Können Sie mir bei meinem Problem helfen? Danke Michael!

Antwort

2

Okay, ich weiß nicht, dass es eine toInt() - Methode in Android gibt?

Versuchen Sie folgendes:

editor.putInt("Hours",Integer.parseInt(edit_hours.getText().toString())); 
+0

Wille, der mir einen int geben, wenn ich es nehmen zwar heraus, weil Sie das Bearbeiten von Text in einem String zu sagen ändern ? –

+0

Die Methode toInt() existiert einfach nicht, deshalb erhalten Sie einen Compilerfehler. Auf der anderen Seite gibt getText() einen editierbaren Wert und keinen String-Wert zurück. Sie müssen zuerst den Zeichenfolgenwert (den eigentlichen Text in der Benutzeroberfläche) mit toString() abrufen und dann mit Integer.parseInt (String) in Ganzzahl umwandeln. – SiN

+0

Können Sie mir sagen, wie Sie es zurückrufen, was ich getan habe, war 'edit_hours' .setText (settings.getInt ("Stunden", 0)); ' in der Oncreat-Sektion, aber es ist abgestürzt? –

0

Sie dies als Beispiel verwenden können:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); 
EditTextPreference XXX = (EditTextPreference)findPreference("Hours"); 
XXX.setText(Integer.parseInt(hours)); 
+0

Wie nennst du es später mit diesem zurück? –

Verwandte Themen