我定義我的喜好,如下面的XML文件:爲什麼Android會忽略返回true的OnPreferenceClickListener()?
<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我重寫onPreferenceClick()爲 「pref_screen_key」:
...
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;
}
所以我希望用CheckBoxPreference Android將不開放的觀點如果我的標誌是真的,但只是執行我的東西(我在onPreferenceClick()中返回true以表示單擊已被處理,並且不需要執行默認的onPreferenceClick()行爲)。 不幸的是,Android總是以默認行爲處理onPreferenceClick(),並同時使我的東西。
難道是Android的一個bug? 有沒有辦法阻止Android顯示CheckBoxPreference用戶點擊PreferenceScreen後?