我有一个 PreferenceActivity,我想将其与 AndroidAnnotations @SharedPref 一起使用,因此 PreferenceActivity 将使用 @SharedPref 中的数据。
有什么好的方法吗?如何告诉 Activity 使用我在其他地方创建的 @SharedPref?有没有一种好的方法可以在不设置每个首选项的值的情况下执行此操作?
这是我当前使用的 Activity 代码:
public class SettingsActivity extends PreferenceActivity {
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
最佳答案
PreferenceActivity是一个Activity,因此你只需要用@EActivity对其进行注解即可开始使用注解,例如>@SharedPref。
如果您想在 Activity 之间共享首选项,AndroidAnnotations 有范围的概念,如 here 所定义。 .
您应该使用Scope.UNIQUE范围在所有 Activity 之间共享它。
SharedPref 被认为是一种轻松地将数据存储到 SharedPreferences 中的方法。不一定与PreferenceActivity一起使用。
您可以使用getSharedPreferences()来访问共享首选项实例,但不能使用它来定义要在 Activity 中使用的首选项。所以这主要是使用正确的 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);
}
}
关于java - 如何将 AndroidAnnotations SharedPref 与 PreferenceActivity 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970068/