1

私には2つの活動があります。最初のアクティビティでは、文字列を共有設定に入れています。次に、getStringをログに記録すると、それが表示されることがわかります。次に、2番目のアクティビティに移動し、getStringをトーストすると、表示されるデフォルト値を取得します。

最初のアクティビティコード:

SharedPreferences.Editor pref_editor = mcontext.getSharedPreferences("Prefs", Context.MODE_PRIVATE).edit();
SharedPreferences pref = mcontext.getSharedPreferences("Prefs", Context.MODE_PRIVATE);
pref_editor.putString("test", "It works!").commit();
Log.d("XXX", pref.getString("test", "ERRRROR"));

2番目のアクティビティコード:

SharedPreferences pref = mcontext.getSharedPreferences("Prefs", Context.MODE_PRIVATE);
String current = pref.getString("test", "ERROR");
Toast.makeText(getApplicationContext(), current,
                Toast.LENGTH_SHORT).show();

トーストしたときにデフォルト値の「ERROR」が表示される理由はありますか?

4

3 に答える 3

2

これを試してください:-

SharedPreferences pref = mcontext.getSharedPreferences("Prefs", Context.MODE_PRIVATE);
SharedPreferences.Editor pref_editor = pref.edit();
pref_editor.putString("test", "It works!")
pref_editor.commit();
于 2013-01-13T04:43:49.320 に答える
0

このSO投稿から apply()を試しましたか?

于 2013-01-13T04:27:53.340 に答える
0

エディターで commit を呼び出していません。変更はバッチ処理され、commit が呼び出されるまでディスクに書き込まれません。

于 2013-01-13T03:51:00.853 に答える