我正在使用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?