java - 从 Activity 中设置偏好

标签 java android android-xml android-preferences

我想解释一下我需要什么。我有一个 preference.xml,其中有一个 ListPreference

<ListPreference 
                android:key="preference_grid"
                android:title="@string/preference_grid"
                android:summary="@string/preference_grid_summary"
                android:entries="@array/preference_grid_entries"
                android:entryValues="@array/preference_grid_values"
                android:defaultValue="preference_grid_none"
                />

然后我创建了一个包含值列表的对话框:

public void gridOnOff(View view) {
        //Toast.makeText(MainActivity.this, "Grid On/Off", Toast.LENGTH_SHORT).show();

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Grid Options");
        builder.setItems(R.array.preference_grid_entries, gridDialogListener);
        builder.create();
        builder.show();
    }
    private DialogInterface.OnClickListener gridDialogListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (which) {
                case 0:
                    break;
                case 1:

                    break;
                case 2:

                    break;
            }
        }
    };

我可以显示值列表,但我不知道如何在点击时设置值。这可能吗?谢谢

最佳答案

像这样更改你的 onClickListener

public void onClick(DialogInterface dialog, int which) {
    PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit().putString("preference_grid", 
        getResources().getStringArray(R.array.preference_grid_values)[which]).apply();
}

关于java - 从 Activity 中设置偏好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32551670/

相关文章:

android - 在 Android Studio 中通过 sdkmanager 安装 SDK 时出错

android - Textview 中的 2 列对齐

java - 在 JSON 填充的 Android View 中单击的复选框列表

android - 选择 Spinner 项时如何阻止 ScrollView 向上滚动?

Java - 如何让依赖项相互忽略?

java - 启用 Carbon SecureVault 后 WSO2 GR 无法启动

java - 如何在 android studio 上启用泛型类型 <T>

java - Apache Shiro + 身份验证问题

java - 在包 'paddingEnd' 中找不到属性 'android' 的资源标识符

android - 使用扩展 Theme.Dialog 的自定义主题删除 Dialog 上的灰色背景