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

間違った初期化を初期化しています

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

これは機能します。

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

保存している情報が正しい場合、これで問題はないはずです

編集

マニフェストを次のように更新する必要もあります。

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