0


我有一个使用用户位置的应用程序。我有一个对话框(下图)询问用户是否允许“允许”或“禁止”应用程序使用用户的位置(安装后用户第一次打开应用程序或当用户尝试使用基于位置的服务时弹出对话框使用用户位置是用户“不允许”的)。
对话

我还使用偏好项(复选框)(下图),PreferenceActivity 用户可以在其中切换他的偏好。
首选项

要更改 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。此外,您可能希望确保您在其 XML 定义中具有。onCreatePreferenceActivityCheckBoxPreferenceandroid:persistent-"true"

于 2011-12-05T11:24:02.033 回答