2

我有一个 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);
    }  
}
4

1 回答 1

3

A PreferenceActivity是一个Activity,因此您只需使用@EActivity对其进行注释即可开始使用注释,例如@SharedPref

如果您想在 Activity 之间共享首选项,AndroidAnnotations 具有范围的概念,如此处所定义

您应该使用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);
    }

}
于 2012-06-12T09:05:54.870 回答