【发布时间】:2016-11-07 10:28:00
【问题描述】:
我在 xml 文件中定义了我的首选项,如下所示:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen
android:title="@string/pref_screen"
android:key="pref_screen_key">
<CheckBoxPreference
android:defaultValue="true"
android:key="prefs1_key"
android:title="@string/prefs1_str"
android:summary="@string/prefs1_summary" />
....
在 PreferenceActivity 中,我为“pref_screen_key”覆盖了 onPreferenceClick():
...
findPreference("pref_screen_key").setOnPreferenceClickListener(
new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
if (flag) {
// do some stuff
return true; // According to Android doc it means, that click was handled
} else
return false;
}
所以我希望如果我的标志为真,Android 不会使用 CheckBoxPreference 打开视图,而只是执行我的东西(我在 onPreferenceClick() 中返回 true 以指示点击已处理并且不需要执行默认的 onPreferenceClick () 行为)。 不幸的是,Android 总是以默认行为处理 onPreferenceClick() 并同时制作我的东西。
这是 Android 中的错误吗? 有没有办法阻止 Android 在用户点击 PreferenceScreen 后显示 CheckBoxPreference?
【问题讨论】:
标签: android preferenceactivity preferencescreen