Mar*_*ark 77 android sharedpreferences android-fragments
我正在尝试阅读Fragment中的SharedPreferences.我的代码是我用来获取任何其他Activity的首选项.
SharedPreferences preferences = getSharedPreferences("pref", 0);
Run Code Online (Sandbox Code Playgroud)
我收到错误
Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper
Run Code Online (Sandbox Code Playgroud)
我试图遵循这些链接,但没有运气通过静态方法和 静态SharedPreferences 访问SharedPreferences.谢谢你的任何解决方案.
Jug*_*aut 222
该方法getSharedPreferences是一个Context对象的方法,所以只调用一个getSharedPreferences Fragment将无法正常工作...因为它不是一个Context!(Activity是Context的扩展,所以我们可以从中调用getSharedPreferences).
所以你必须得到你的应用程序Context by
// this = your fragment
SharedPreferences preferences = this.getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
Leo*_*eon 11
明确的答案对我不起作用,我不得不使用
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
Run Code Online (Sandbox Code Playgroud)
编辑:
或者只是尝试删除this:
SharedPreferences prefs = getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)
请注意,我上面的用户提供的答案是正确的.
SharedPreferences preferences = this.getActivity().getSharedPreferences("pref",0);
Run Code Online (Sandbox Code Playgroud)
但是,如果在onAttach调用之前尝试获取片段中的任何内容,则getActivity()将返回null.
| 归档时间: |
|
| 查看次数: |
103862 次 |
| 最近记录: |