1

私は明らかに何か間違ったことをしています。私のスプラッシュ画面で、どのアクティビティに進むかを決定するとき、次のコードがあります。

SharedPreferences getPrefs = PreferenceManager
                        .getDefaultSharedPreferences(getBaseContext());
                boolean disclamerChecked = getPrefs.getBoolean("disclamer", false);
                boolean medicalScreeningChecked = getPrefs.getBoolean("screening", false);

だから、私はアプリのインストール時にfalseになるはずの2ブール値を読み込もうとしています。セットアップが完了すると、永続的にtrueになるはずです。

さて、私の活動(現時点ではDisclamerのみ)には、次のものがあります。

private void setDisclamerPropertie() {
    // TODO Auto-generated method stub
    startupPrefs= getSharedPreferences("startupPrefs", MODE_WORLD_WRITEABLE);
    SharedPreferences.Editor editor = startupPrefs.edit();
    editor.putBoolean("disclamer", true);
    editor.commit();
    return;
}

この関数はOnCreate関数で呼び出され、[accept]ボタンをクリックすると、共有設定が保存されます(または、少なくともそれが必要です)。

ボタンは機能し、次のアクティビティに移動し、次のアクティビティに移動しますが、アプリをリロードすると、ブール値が保存されていないようで、アプリは再度確認を求めます。

それで、私はどこで間違っていますか、好みを書くこと、または正しい好みを読むことで何かが欠けていますか?

4

2 に答える 2

2

さまざまな設定を使用しています。

startupPrefs= getSharedPreferences("startupPrefs", MODE_WORLD_WRITEABLE);

これも次のようになります。

startupPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
于 2012-08-30T15:26:21.217 に答える
2

デフォルトの共有設定から読み取っていますが、名前付き設定( "startupPrefs")に書き込んでいるため、共有設定の2つの別個のインスタンスがあります。

于 2012-08-30T15:26:33.177 に答える