Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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 在SharedPrefer中写入数据-应用程序停止响应_Android_Sharedpreferences - Fatal编程技术网

Android 在SharedPrefer中写入数据-应用程序停止响应

Android 在SharedPrefer中写入数据-应用程序停止响应,android,sharedpreferences,Android,Sharedpreferences,我正在使用以下代码将数据存储在shared pref中。 然而,每当调用此代码时,虚拟设备都会告诉我应用程序 停止响应。有什么建议可以解释为什么会发生这种情况吗 SharedPreferences spref = this.getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = spref.edit(); editor.putString("td", "SharedPref"); //name-v

我正在使用以下代码将数据存储在shared pref中。 然而,每当调用此代码时,虚拟设备都会告诉我应用程序 停止响应。有什么建议可以解释为什么会发生这种情况吗

SharedPreferences spref =       this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = spref.edit();
editor.putString("td", "SharedPref"); //name-value pair
editor.commit();
编辑: 现在我使用下面的

SharedReferences spref=this.getSharedReferences(“myPrefs”,模式世界可读); SharedReferences.Editor=spref.edit(); 编辑器.putString(“td”、“SharedPref”); commit()

但我仍然收到“应用程序意外停止..请重试”

看起来虚拟设备出现了一些问题。重新创建后,我的应用程序开始正常工作

试试这个

SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(Context);

在我的应用程序中,我更喜欢使用自己的位置名。申报

public static final String PREFS_NAME = "MyPrefsFile";
然后在代码中

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  //0 might be bad naming, can just use MODE_PRIVATE or something instead depending on what you need to do :)
SharedPreferences.Editor editor = settings.edit();
editor.putInt("key", "value");
editor.commit();
如果你保存的信息是正确的,这应该不会有任何问题

编辑

您还需要使用以下内容更新清单:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

您正在初始化错误的初始化

final SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);

这将起作用。

尝试改用GetSharedReferences,并粘贴logcat。您是在活动类内部还是在活动类外部使用它?如果它位于带有两个参数的Activity类
GetSharedReferences()
内,就足够了。第一个参数是要保存在SharedReference位置的文件名,第二个参数是模式。您只给出了模式。@AnujAroshA我仍然得到错误。请检查我的编辑代码嘿,亚当,你能发布更多的代码吗?很抱歉,当其他人说您需要使用GetSharedReference或使用外部存储时,他们应该是错的。使用getPreferences()是合法的,如果不总是您想要做的事情。然而,您现在拥有的代码应该是合法的,因此我们需要更多的信息。具体地说,您能发布您的整个Java文件和logcat输出吗?很高兴它能工作。我想知道问题可能是什么:)至于我前面说的,如果您使用的是getPreferences(int模式),尽管这是合法的,但如果您想要的是活动特有的首选项,而不是整个应用程序,建议您这样做。因此,它与GetSharedReferences(string,int)之间的区别在于,您正在创建一个具有该字符串名称的“文件”,您可以通过后续调用具有相同字符串的GetSharedReferences来访问整个应用程序。在外部,我通常将其放在MindkVersion/targetSdkVersion之后的顶部