[設定] ページで 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" >
</SwitchPreference>
私の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;
}
});
私のスイッチのカスタムレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<Switch xmlns:android="http://schemas.android.com/apk/res/android"
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" />
私が抱えている問題は、スイッチをクリックしてもリスナーが呼び出されないことです。誰もそれを修正する理由と方法を知っていますか?