I have a code using SwitchPreference
that used to work with Android 4.x however it no longer works since I updated my device to Android 5.0.1.
I have a simple SwitchPreference
which displays a title on the left and an ON/OFF switch on the right.
<SwitchPreference
android:key="myPref"
android:selectable="true"
android:title="Title"
android:fragment="com.myApp.DeviceMonitorPrefsActivity"
android:switchTextOn="ON"
android:switchTextOff="OFF"/>
On the PreferenceActivity, I overrode onPreferenceTreeClick()
to perform an Action (launching a setup Activity in my case) when I click on the title of this SwitchPreference
control.
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)
{
if(preference instanceof SwitchPreference){
// My Action
}
}
With Android 4.4.4, this Action used to be executed only when I pressed to the left of this control (title), but not when I changed the switch state.
Now with Android 5.0.1, the onPreferenceTreeClick() is called even when I change the switch state, and I didn't find a way to differentiate the two cases.
Is it a bug in Android 5.0.1 or is there a way to make this work cleanly?