【发布时间】:2014-01-23 21:36:47
【问题描述】:
使用 Android 注释。我的偏好:
@SharedPref(value = SharedPref.Scope.APPLICATION_DEFAULT)
public interface MyPreferences {
@DefaultBoolean(true)
boolean myOption();
}
preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="myOption"
android:title="My Option Name"/>
</PreferenceScreen>
我的PreferencesActivity:
public class MyPreferencesActivity extends PreferenceActivity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
问题是:尽管myOption 的默认值是 true(实际上是在调用MyPreferences_.myOption().get() 时),但默认情况下未选中首选项活动中的复选框。
String 首选项也是如此。它们返回@DefaultString 注释中给出的默认字符串,但它不会显示在 PreferenceActivity 中。只有在我从活动中更改偏好值后,它才会正确显示。
【问题讨论】:
标签: java android sharedpreferences android-annotations