0

私は、SharedPrefs の値を取得し、プログラムが作成されるたびにそれを 1 ずつインクリメントする、非常に単純なアクティビティを持っています。したがって、プログラムを開いて閉じる(バックアウトする)と、これが増加し続けると予想されます。ただし、値が保存されていないようです。各変更後にコミットを使用しています。

public class SharedPreferencesActivity extends Activity {
/** Called when the activity is first created. */

public static final String PREFERENCE_FILENAME = "MyGamePreferences";  

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    int int_out = 0;
    SharedPreferences gameSettings = getSharedPreferences(PREFERENCE_FILENAME, MODE_PRIVATE);
    SharedPreferences.Editor prefEditor = gameSettings.edit();

    int_out = gameSettings.getInt("Username", 0);
    Log.e("Pre",Integer.toString(int_out));
    int_out = int_out + 1;
    Log.e("During",Integer.toString(int_out));
    prefEditor.putInt("UserName", int_out);
    prefEditor.commit();
    int_out  = gameSettings.getInt("Username", 0);

    Log.e("Post",Integer.toString(int_out));

}
}

上記のコードの Log.e ステートメントからの出力は次のとおりです。

前: 0 中: 1 投稿: 999

だからそれは後のようです

calling prefEditor.commit();
int_out  = gameSettings.getInt("Username", 0);

SharedPref gameSettings は保存されませんでした。

4

1 に答える 1

2

大文字のキーを 1 つ使用しました。行を変更する

prefEditor.putInt("UserName", int_out);

prefEditor.putInt("Username", int_out);
于 2013-09-22T00:57:07.267 に答える