Android 在SharedPrefer中写入数据-应用程序停止响应
我正在使用以下代码将数据存储在shared pref中。 然而,每当调用此代码时,虚拟设备都会告诉我应用程序 停止响应。有什么建议可以解释为什么会发生这种情况吗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
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之后的顶部