0

誰かが私がここで見落としているものを見るのを手伝ってくれませんか?

重要なのは、これらの値は永続ストレージにコミットしないということです.commit()-trueとすべてを返しますが、値は単にそこにありません...

public void onPause() {
    super.onPause();

    if (timerStarted) {
    // Save the values
            settings.edit().putInt(getString(beer).toString(), savedVal_beer);
            settings.edit().putInt(getString(lightBeer).toString(), savedVal_ltBeer);
            settings.edit().putInt(getString(strongBeer).toString(), savedVal_stBeer);
            settings.edit().putInt(getString(wine).toString(), savedVal_wine);
            settings.edit().putInt(getString(fortifiedWine).toString(), savedVal_fortWine);
            settings.edit().putInt(getString(liqeur).toString(), savedVal_liqeur);
            settings.edit().putInt(getString(spirits).toString(), savedVal_spirits);
            if (counterStarted) {
                settings.edit().putString(getString(R.string.key_counter_lastTypeUsed), selectedType);
            }
            settings.edit().commit();
            if (settings.edit().commit()) {
                Toast.makeText(this, "saved", Toast.LENGTH_SHORT).show();
            }
    }
}

最後にブレークポイントを追加し、デバッガーを使用して、格納される変数が実際に存在することを確認しましたが、adbを使用してsharedPrefs xmlファイルをプルすると、実際にはどの値も保存されていません...

timerStartedそしてcounterStarted、彼らがそうであるべきであるように、両方とも真実です。

4

1 に答える 1

3

edit()1回の呼び出しのみを使用する必要があります。そして、への二重呼び出しを削除しcommit()ます。

Editor editor = settings.edit();
editor.putInt(getString(beer).toString(), savedVal_beer);
editor.putInt(getString(lightBeer).toString(), savedVal_ltBeer);
editor.putInt(getString(strongBeer).toString(), savedVal_stBeer);
editor.putInt(getString(wine).toString(), savedVal_wine);
editor.putInt(getString(fortifiedWine).toString(), savedVal_fortWine);
editor.putInt(getString(liqeur).toString(), savedVal_liqeur);
editor.putInt(getString(spirits).toString(), savedVal_spirits);
if (counterStarted) {
    editor.putString(getString(R.string.key_counter_lastTypeUsed), selectedType);
}
if (editor.commit()) {
    Toast.makeText(this, "saved", Toast.LENGTH_SHORT).show();
}
于 2012-08-20T20:12:51.043 に答える