如何将AndroidAnnotations SharedPref与PreferenceActivity一起使用?

时间:2012-06-10 15:47:31

标签: java android android-annotations

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

1 个答案:

答案 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);
    }

}