没有context怎么创建getSharedPreferences
时间: 2024-02-12 07:03:40 浏览: 22
如果没有 `Context` 对象,那么你需要先获取一个 `Context` 对象。通常情况下,如果是在 `Activity` 中,你可以使用 `this` 关键字来获取当前的 `Activity` 对象,如果是在 `Fragment` 中,可以使用 `getActivity()` 方法来获取 `Activity` 对象。如果是在一个非 `Activity` 或 `Fragment` 的类中,那么你需要手动传入一个 `Context` 对象。
下面是一个在非 `Activity` 或 `Fragment` 的类中获取 `SharedPreferences` 的例子:
```
public class MySharedPreferencesUtils {
private SharedPreferences sharedPreferences;
public MySharedPreferencesUtils(Context context) {
sharedPreferences = context.getSharedPreferences("my_preferences", Context.MODE_PRIVATE);
}
public long getLongValue(String key, long defaultValue) {
return sharedPreferences.getLong(key, defaultValue);
}
public void putLongValue(String key, long value) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putLong(key, value);
editor.apply();
}
}
```
在上面的例子中,我们创建了一个 `MySharedPreferencesUtils` 类,它接收一个 `Context` 对象作为参数,并在构造函数中通过传入的 `Context` 对象获取了一个 `SharedPreferences` 对象。然后,我们可以在该类中提供一些方法,让外部可以方便地读取或写入 `SharedPreferences` 中的数据。