0


ユーザーの位置情報を使用するアプリがあります。アプリにユーザーの位置情報の使用を「許可」または「禁止」する許可を求めるダイアログ(下の写真)があります(ユーザーがインストール後にアプリを初めて開いたとき、またはユーザーが位置情報サービスを使用しようとしたときにダイアログがポップアップしますユーザーの場所の使用は、ユーザーによって「許可されない」-ed)です。
ダイアログ

PreferenceActivity また、ユーザーが自分の好みを切り替えることができる設定項目(チェックボックス)(下の写真)を使用します。
prefsアイテム

sharedpreferenceの値を変更するには、このコードを使用します

    public void onClick(DialogInterface dialog, int id)
    {
        sharedPrefs =getSharedPreferences("prefs",MODE_WORLD_WRITEABLE);
        Editor editor = sharedPrefs.edit();
        editor.putBoolean("locationPermission", true);
        editor.commit();
}

キー「locationPermission」がチェックボックスの値を保持しているため、ダイアログの選択に応じてチェックボックスの値が自動的に変更されることを期待していました。しかし、そうではありません。

次に、ダイアログ(写真1)の選択をチェックボックスの値(写真2)にマップするにはどうすればよいですか?

4

2 に答える 2

4

代わりにを使用して問題を解決しました

sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());



sharedPrefs = getSharedPreferences("prefs", MODE_WORLD_WRITEABLE);

于 2011-12-06T07:47:10.043 に答える
1

のを呼び出しaddPreferencesFromResourceて、設定からUIが入力されるようにonCreateすることができます。PreferenceActivityまた、XML定義にCheckBoxPreferenceが含まれていることを確認することもできます。android:persistent-"true"

于 2011-12-05T11:24:02.033 に答える