单击开关上的SwitchPreference不会触发侦听器

时间:2019-04-14 11:29:37

标签: android android-preferences

我正在使用SwitchPreference,但似乎只有在首选项视图(行)上单击才能触发首选项单击侦听器或首选项更改侦听器。单击开关本身后,即使开关状态更改,听众也不会被呼叫。

有什么可以做的吗?

编辑: 我知道了。这是我的听众:

    switchPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
        @Override
        public boolean onPreferenceChange(Preference preference, Object o) {
            //not called when clicking preference itself
            return true;
        }
    });

这是我的SwitchPreference:

<SwitchPreference
        android:key="@string/key_email_messages"
        android:layout="@layout/prefs_switch"
        android:title="@string/title_email_messages" />

我正在使用自定义布局来更改首选项的字体大小。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewWrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/prefs_row_padding">
<TextView
    android:id="@android:id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/pref_text_size" />
<Switch
    android:id="@+id/switch_widget"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true" />
</RelativeLayout>

我猜测SwitchPreference找不到具有该ID的开关。我应该使用什么ID?

0 个答案:

没有答案