【发布时间】:2019-05-02 04:18:49
【问题描述】:
我有一个设置片段,它加载一个带有默认设置页面的 xml,我还为一个特定的偏好添加了一个点击监听器
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.settings);
preferences.findPreference(getString(R.string.pref_custom_list)).setOnPreferenceChangeListener(this);
//other stuff.....
这很好用,当用户点击触发事件时,我可以检查有关开关的一些信息,包括拒绝更改...
但即使发生这种情况,我也想打开/关闭同一屏幕中的其他开关
我试过
preferences.findPreference(getString(R.string.xpto)).setEnabled(true);
但它不会打开或关闭任何开关...它只是将视图设置为启用或禁用点击
如果我做类似的事情
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("xpto",true).apply();
它确实改变了偏好,但改变没有加载到屏幕上,所以用户不知道
如何以编程方式打开或关闭某些首选项并使其反映到首选项屏幕
【问题讨论】:
标签: android sharedpreferences android-preferences preferenceactivity android-settings