【发布时间】:2020-08-29 16:19:30
【问题描述】:
我尝试从我的应用程序中的片段访问我的共享首选项,如下所示:
SharedPreferences sp_app_prefs = getActivity().getSharedPreferences(getActivity().getPackageName(), MODE_PRIVATE);
String path = sp_app_prefs.getString("path", "");
但我收到 NullPointerException:
Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
我真的不明白为什么,这对我来说没有意义。 从活动中调用此共享首选项完全可以。 我错过了什么?
这里是完整的字符串方法:
public String getFilePath(int i) {
File filePath;
SharedPreferences sp_app_prefs = getActivity().getSharedPreferences(getActivity().getPackageName(), MODE_PRIVATE);
String path = sp_app_prefs.getString("path", "");
filePath = new File(path);
}
return String.valueOf(filePath);
}
希望有人可以帮助我
【问题讨论】:
-
代码对我来说看起来不错。看起来启动片段的活动给出了一个空上下文。你能分享一下你是如何从活动中启动这个片段的吗?
-
使用 PrefereneceManager-developer.android.com/reference/androidx/preference/…
-
您在 Fragment 生命周期的哪个位置调用
getFilePath()?
标签: java android nullpointerexception sharedpreferences