2013-03-25 15 views
8

mam preferencji przełącznika i ma to być domyślnie "ON" ... w xml,Android switchpreference Jak ustawić domyślną wartość przełącznika?

<SwitchPreference 
     android:defaultValue="true" 
     android:key="PromoNotificationOnOff" 
     android:title="@string/Snotification_enable" /> 

aw klasie

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Load the preferences from an XML resource 
    addPreferencesFromResource(R.xml.settings); 


} 

dlaczego nie jest to działa? Czego brakuje? Dzięki!!

Odpowiedz

9

W swojej metodzie MainActivity onCreate dodać tę linię

PreferenceManager.setDefaultValues(this, R.xml.settings, false); 

Można o tym przeczytać w http://developer.android.com/reference/android/preference/PreferenceManager.html#setDefaultValues(android.content.Context, int Boolean)

+3

XML "android: defaultValue" znacznik jest absolutnie poprawne. Aktualizacja wartości (przesłanianie jej) w kodzie jest zbędna i może spowodować zamieszanie później, jeśli obie zostaną pozostawione na miejscu. Jednak podczas debugowania tego kodu "domyślne" dla elementów preferencji często nie trwają, dopóki dane aplikacji nie zostaną wyczyszczone w ustawieniach systemu Android. – gtcompscientist

+0

@gtcompscientist przed komentarzem i w dół głosowania należy przeczytać link odniesienia. Jeśli to zbyt dużo problemów, powinieneś przynajmniej przeczytać dokument na setDefaultValues ​​(), aby wiedzieć, co oznaczają parametry. Gdzie w rozwiązaniu podałem, że aktualizuje wartość ustawioną w xml? Podane przeze mnie rozwiązanie jest absolutnie poprawne i jasne, jeśli wiadomo, jaka jest metoda setDefaultValues ​​(). –

Powiązane problemy