从 activity 设置首选项

Set a preferences from an activity

我想解释一下我需要什么。我有一个 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();
}