0

我正在使用以下代码将数据存储在共享首选项中。但是,每当调用此代码时,虚拟设备都会告诉我应用程序停止响应。有什么建议为什么会发生这种情况?

SharedPreferences spref =       this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = spref.edit();
editor.putString("td", "SharedPref"); //name-value pair
editor.commit();

编辑:现在我使用以下

SharedPreferences spref = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); SharedPreferences.Editor 编辑器 = spref.edit(); editor.putString("td", "SharedPref"); editor.commit();

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

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

4

3 回答 3

1

试试这个

SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(Context);
于 2012-10-05T11:51:47.863 回答
1

You are initializing the wrong initialization

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

This will work.

于 2012-10-05T11:55:18.033 回答
0

在我的应用程序中,我更喜欢使用自己的位置名称。宣布

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();

shouldn't be any problems with this if the info you're saving is correct

EDIT

you also need to update your manifest with the following:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2012-10-05T11:55:09.437 回答