gpt4 book ai didi

java - 如何在不扩展 Activity 的情况下使用 getSharedPreferences?

转载 作者:行者123 更新时间:2023-11-30 10:57:19 26 4
gpt4 key购买 nike

我有一个扩展 SurfaceView 的 GamePanel 类,所以我不能为 SharedPreferences 扩展 Activity。如何在不扩展类的情况下使用 getSharedPreferences?

我已经试过了:

SharedPreferences sp = Activity.getSharedPreferences("MyScore", Context.MODE_PRIVATE);

但是,我收到一条错误消息,提示“无法从静态上下文中引用。

最佳答案

您可以将 Application 类中的 Sharedpreferences 初始化为静态变量,然后在每个非 Activity 类中使用它:

public class MyApplication extends Application {

private static SharedPreferences sharedPreferences;

public static SharedPreferences getSharedPreferences() {
return sharedPreferences;
}

public void setSharedPreferences(SharedPreferences sharedPreferences) {
this.sharedPreferences = sharedPreferences;
}

@Override
public void onCreate() {
super.onCreate();

setSharedPreferences(MyApplication.this
.getSharedPreferences("MyScore",getApplicationContext().MODE_PRIVATE));

现在无论何时你想在静态上下文中访问 sharedprefs,你总是可以像这样使用它:

    String value = MyApplication.getSharedPreferences().getString("key","");

关于java - 如何在不扩展 Activity 的情况下使用 getSharedPreferences?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674274/

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