我有一个PreferenceActivity,我想与AndroidAnnotations @SharedPref一起使用,所以PreferenceActivity会使用@SharedPref中的数据。
这样做有好办法吗?如何告诉活动使用我在别处创建的@SharedPref?如果没有设置每个偏好的值,有没有一个好方法呢?
以下是我目前正在使用的活动代码:
public class SettingsActivity extends PreferenceActivity {
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
答案 0 :(得分:3)
PreferenceActivity 是活动,因此您只需要使用 @EActivity 对其进行注释即可开始使用注释,例如 @SharedPref 强>
如果您想在活动之间共享偏好,AndroidAnnotations具有范围概念,定义为here。
您应该使用 Scope.UNIQUE 范围在所有活动之间共享。
SharedPref被认为是一种将数据轻松存储到SharedPreferences中的方法。不一定与 PreferenceActivity 一起使用。
您可以使用 getSharedPreferences()来访问共享首选项实例,您无法使用它来定义要在活动中使用的首选项。因此,主要是使用正确的Android API。
@EActivity
public class SettingsActivity extends PreferenceActivity {
@Pref
MyPrefs_ myPrefs;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getPreferenceManager().setSharedPreferencesName("MyPrefs");
addPreferencesFromResource(R.xml.preferences);
}
}