[英]Getting Shared Preference in a Fragment
我在Android片段中的共享首选项有问题。 在我的MainActivity onLoad中,我正在检查共享首选项,如果为true,则打开片段A。
SharedPreferences prefs = getApplicationContext().getSharedPreferences("EULA_SHARED_PREFERENCE", MODE_PRIVATE);
boolean status = prefs.getBoolean("show_eula_key", false);
if(status == true){
EulaFragment eulaFragment = new EulaFragment();
eulaFragment.show(getSupportFragmentManager(), null);
}
在片段A中,在接受按钮onClick时,我将共享首选项更新为false:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("show_eula_key", false).commit();
dismiss();
但是,即使我选择接受并重新启动该应用程序,但在重新启动该应用程序时,它仍会打开片段A。有什么想法吗?
谢谢!
您使用两个不同的文件:
SharedPreferences prefs = getApplicationContext()。getSharedPreferences(“ EULA_SHARED_PREFERENCE”,MODE_PRIVATE);
和
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
您必须同时使用两者。 (提示:活动是上下文)
用这样的东西
editor.putBoolean("show_eula_key", false).apply();
问题是您正在从EULA_SHARED_PREFERENCE获取show_eula_key并保存默认首选项,您必须准确地保存来自首选项的数据
将第二个代码更改为
SharedPreferences prefs = getContext().getSharedPreferences("EULA_SHARED_PREFERENCE", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("show_eula_key", false).apply();
在片段A中
SharedPreferences prefs =getActivity().getSharedPreferences("EULA_SHARED_PREFERENCE", MODE_PRIVATE);
prefs.edit().putBoolean("show_eula_key",false).apply();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.