我想在我的设置页面中使用SwitchPreference,但我无法让侦听器工作。我正在使用自定义小部件布局来设计开关样式,因为我无法找到如何使用主题来实现此目的。在我的settings.xml我有以下:SwitchPreference监听器与自定义布局

android:key="uitestmode"

android:summary="Enable to display test data in fragments"

android:title="UI Test Mode"

android:widgetLayout="@layout/widget_custom_switch_on_off" >

和我SettingsFragment样子:

SwitchPreference uiTestModePref = (SwitchPreference) findPreference("uitestmode");

uiTestModePref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

@Override

public boolean onPreferenceChange(Preference preference, Object newValue) {

Log.d(preference.getKey(), newValue.toString());

return false;

}

});

和我为我的切换自定义布局:

android:id="@+id/custom_switch_item"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center_vertical"

android:textColor="@android:color/white"

android:textIsSelectable="false"

android:textSize="18sp"

android:textOn="On"

android:textOff="Off"

android:textStyle="bold"

android:thumb="@drawable/carcast_switch_inner_holo_dark"

android:track="@drawable/carcast_switch_track_holo_dark" />

我的问题是,当我单击开关时,侦听器不会被调用。有谁知道为什么以及如何解决它?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐