我在 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?