Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 片段中的SharedReference_Android_Android Fragments_Sharedpreferences - Fatal编程技术网

Android 片段中的SharedReference

Android 片段中的SharedReference,android,android-fragments,sharedpreferences,Android,Android Fragments,Sharedpreferences,我知道以前有人问过这个问题,但我似乎不明白 我试图通过以下方式获得我的偏好: SharedPreferences preferences = this.getActivity().getSharedPreferences("storedName", Context.MODE_PRIVATE); String loginemail = preferences.getString("storedName", ""); 但这似乎不起作用,我有多个共享引用,我需要在我的片段中获取这些引

我知道以前有人问过这个问题,但我似乎不明白

我试图通过以下方式获得我的偏好:

SharedPreferences preferences = this.getActivity().getSharedPreferences("storedName",     Context.MODE_PRIVATE);
    String loginemail = preferences.getString("storedName", "");
但这似乎不起作用,我有多个共享引用,我需要在我的片段中获取这些引用。正确的方法是什么? As
getDefaulSharedPreferences(此)
不起作用

我按如下方式存储我的首选项:

savePreferences("shareUniqePass", uniqePassIds.getText().toString());
savePreferences("storedName", inputEmail.getText().toString());
savePreferences("Storedpass", inputPassword.getText().toString());

private void savePreferences(String key, boolean value){
    SharedPreferences sharedPreferences = PreferenceManager
            .getDefaultSharedPreferences(this);
    Editor checkbox = sharedPreferences.edit();
    checkbox.putBoolean(key, value);
    checkbox.commit();
}
private void savePreferences(String key, String value){
    SharedPreferences sharedPreferences = PreferenceManager
            .getDefaultSharedPreferences(this);
    Editor names = sharedPreferences.edit();
    names.putString(key, value);
    names.commit();
}

不要从
getSharedReferences
获取它,而是使用
getDefaultSharedReferences

As getDefaulSharedPreferences(this) doesn't work.
您使用
getDefaultSharedReferences
保存数据,因此必须使用
getDefaultSharedReferences
获取保存的数据

这是指片段的实例,而不是使用
getActivity()
从活动中获取上下文实例

示例:

String loginemail = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString(PREF_USER_NAME, "");;

您需要确保从相同的共享首选项保存和加载数据。如果您仅从一个活动/片段访问它,则应使用
getDefaulSharedPreferences(this)

但是,如果要从几个不同的活动/片段中使用它,则应使用:

private void savePreferences(String key, boolean value){
    SharedPreferences prefs = getActivity().getSharedPreferences("storedName", Context.MODE_PRIVATE);
    Editor checkbox = sharedPreferences.edit();
    checkbox.putBoolean(key, value);
    checkbox.commit();
}

post savePreferences方法感谢这一帮助,但是这也是最好的方法吗?还是我应该用另一种方式拯救他们?在某种物体上?最佳编码mean@user3671459这是最好的方法,因为您不能将对象放入GetSharedReferences。如果这篇文章有帮助的话,欢迎你+1。。非常感谢。