我有一个开关首选项,并希望它默认为“开启”... 在xml中,
<SwitchPreference
android:defaultValue="true"
android:key="PromoNotificationOnOff"
android:title="@string/Snotification_enable" />
在课堂上,
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.settings);
}
为什么不工作?缺什么?谢谢!
答案 0 :(得分:11)
在MainActivity onCreate
方法中添加此行
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
您可以在http://developer.android.com/reference/android/preference/PreferenceManager.html#setDefaultValues(android.content.Context,int,boolean)
上阅读答案 1 :(得分:1)
代码正确无误,只需使用switchPreferenceCompact而不是SwitchPreference
<SwitchPreferenceCompat
app:key="promoNofitficationOnOff"
app:summaryOff="@string/notification_summary_off"
app:summaryOn="@string/notification_summary_on"
app:defaultValue="true"
app:title="@string/promo_notification_title" />