C
CROupier
Gast
Hallo, könnte mir jemand beim Lösen des folgenden Problems behilflich sein. Vielen Dank im Voraus. Es geht um Folgendes: meine Preferences Activity enthält zwei ListPreferences - Gebäude und Räume. Abhängig davon welches Gebäude ausgewählt wird, ändert sich die Liste mit Räumen dementsprechend. Soweit so gut.
Nun möchte ich, wenn ich das Gebäude ändere aber einen Raum (noch nicht) auswähle, dass der share preference Wert vom Raum auf null oder "" gesetzt wird. Bei mir enthält die shared preference noch immer den alten Wert.
Zur Verdeutlichung: Wähle ich z.B. Gebäude A und Raum 4 aus, liefert sp.getString("room", "") eine 4 zurück. Ändere ich die Auswahl auf Gebäude B, aktualisiert sich die Liste mit Räumen. Wähle ich aber keinen Raum aus, so bekomme ich nach wie vor mit sp.getString("room", "") die 4 zurück. Wie kann ich dies ändern. Ich bräuchte in diesem Fall am besten einen leeren String. Vielen Dank.
PHP:
public class MyPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
private static String url = "http://10.0.2.2/myapp/get-rooms/bid/";
@Override
protected void onCreate(Bundle savedInstanceState) {
...
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.registerOnSharedPreferenceChangeListener(this);
...
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sp, String key) {
if (key.equals("building")) {
String url = url + sp.getString(key, "");
updateRoomList(url);
Log.e("sp room", sp.getString("room", ""));
}
...
}
Nun möchte ich, wenn ich das Gebäude ändere aber einen Raum (noch nicht) auswähle, dass der share preference Wert vom Raum auf null oder "" gesetzt wird. Bei mir enthält die shared preference noch immer den alten Wert.
Zur Verdeutlichung: Wähle ich z.B. Gebäude A und Raum 4 aus, liefert sp.getString("room", "") eine 4 zurück. Ändere ich die Auswahl auf Gebäude B, aktualisiert sich die Liste mit Räumen. Wähle ich aber keinen Raum aus, so bekomme ich nach wie vor mit sp.getString("room", "") die 4 zurück. Wie kann ich dies ändern. Ich bräuchte in diesem Fall am besten einen leeren String. Vielen Dank.