gpt4 book ai didi

java - (Android) 在非 Activity 类中使用 SharedPreferences 写入/读取时出错

转载 作者:行者123 更新时间:2023-12-01 18:59:06 25 4
gpt4 key购买 nike

您好,感谢您的阅读。

我正在尝试采用 OOP 方法来使用 SharedPreferences 在我正在开发的 Android 应用程序中保存和检索数据。我相信下面的代码是正确的,因为当直接在非 OOP 庄园中使用时,它可以在 java 类中工作。然而,在我创建的 SharedPref 类中,我在 Eclipse 的 MODE_PRIVATE 处收到错误,我不明白为什么。谢谢。

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

public class SharedPref {

public static String File = "DPFile";

public static void saveToSP(String key, String value) {
SharedPreferences saveData = getSharedPreferences(File, MODE_PRIVATE);
SharedPreferences.Editor editor = saveData.edit();
editor.putString(key, value);
editor.commit();
}


public static String getSavedData(String key) {
SharedPreferences preferences = getSharedPreferences(File, MODE_PRIVATE);
return preferences.getString(key, null);
}
}

此外,如果我扩展 Activity 类 getSharedPreferences 就会成为包含错误和以下消息的行:

“无法从 ContextWrapper 类型对非静态方法 getSharedPreferences(String, int) 进行静态引用”

最佳答案

解决此问题的最简单方法可能是将上下文传递到两个方法中,并使其看起来像这样:

public static void saveToSP(Context context, String key, String value) {
SharedPreferences saveData = context.getSharedPreferences(File, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = saveData.edit();
editor.putString(key, value);
editor.commit();
}

关于java - (Android) 在非 Activity 类中使用 SharedPreferences 写入/读取时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com