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

标签 java android android-annotations

我有一个 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/

相关文章:

android - Xamarin android 找不到 id 字段

android - 在 EditText 中输入文本,然后当用户在其中单击时消失

android - Android Studio 3.4-错误transformDexWithInstantRunSlicesApkForAwsDebug

AndroidAnnotations + Instant App - 找不到生成的 <applicationId>.R 类

java - 如何使用 Java API 从 Picasa 获取具有特定标题的照片

java - 是否需要验证 JAR 文件的完整性?

java - 如何监控用于 ftp 服务的网络端口?

android-studio - 带有Android Studio 2.0 Beta的Android批注

android - annotationprocessor 和 apt configure 等效

java - 打印哈夫曼树中的正确路径