2012-04-02 9 views
0

Ist es möglich, eine Präferenz mit der Einheit zu zeigen (während immer noch nur den Wert nehmen)Android Präferenzen zeigen Wert und Einheit

Zum Beispiel:

die Präferenz Entfernung, die ein EditTextPreference und die Präferenz Entfernungseinheit, die eine ListPreference

Also, wenn sie angezeigt werden es zeigt:

Distance 
value + unit 

Distance Unit 
unit 

Beispiel:

Distance 
5 km 
Distance Unit 
km 

dann Wegeinheit ändern:

Distance 
5 mi 
Distance Unit 
mi 

aber alles, was ich wirklich interessiert, ist die 5, aber ich möchte noch das Gerät daneben zeigen. Ist das möglich?

Dank

+0

Können Sie einige Beispiel-Code zur Verfügung stellen? Wie gibst du das Ergebnis aus? –

+0

Richtig wissen, dass meine Klasse PreferenceActivity erweitert und verwendet preference.setSummary (value); – user1154920

+0

Ich habe darüber gesprochen, wie Sie das Ergebnis ausgeben. Wenn Sie es als String ausgeben, müssen Sie nur zwei Strings verketten. Wenn Ihr Problem darin besteht, die Einstellung zu speichern, funktionieren gemeinsame Einstellungen mit Schlüssel/Wert-Paaren. Sie müssen nur ein neues Schlüssel/Wert-Paar erstellen, in dem Sie die Einheit speichern. –

Antwort

0

Sicher können Sie. Implementieren Sie einfach eine benutzerdefinierte onSharedPreferenceChanged (SharedPreferences sharedPreferences, String key) für Ihre Entfernung und Ihre Einheit.

Suchen Sie Ihre Präferenz mit der Entfernungs-Taste und verwenden Sie setSummary (String summary), um die Einheit an die Entfernung anzuhängen.

Hier einige Phantasie Code:

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { 
    if (key.equals("distance") | key.equals("unit")) { 
     findPreference("distance").setSummary(sharedPreferences.getString("distance", "0") + sharedPreferences.getString("unit", "km")); 
    } 
} 
+0

Ist es möglich, nur den Wert und nicht den Wert + die Einheit zu speichern? – user1154920

+0

setSummary() speichert nichts. Es wird nur etwas angezeigt. Und wenn Sie die Einheit nicht speichern, wie möchten Sie ermitteln, welche Einheit anhängen? – user1014917

+0

Ich speichere die Einheit, ich habe nicht realisiert setSummary() speichert den Wert nicht, sondern zeigt ihn nur an. Vielen Dank – user1154920

Verwandte Themen