Android 4.x で動作していたコードを使用していますSwitchPreference
が、デバイスを Android 5.0.1 に更新してから動作しなくなりました。
SwitchPreference
左側にタイトル、右側にON/OFFスイッチを表示するシンプルなものを持っています。
<SwitchPreference
android:key="myPref"
android:selectable="true"
android:title="Title"
android:fragment="com.myApp.DeviceMonitorPrefsActivity"
android:switchTextOn="ON"
android:switchTextOff="OFF"/>
PreferenceActivity では、このコントロールonPreferenceTreeClick()
のタイトルをクリックすると、オーバーライドしてアクション (私の場合はセットアップ アクティビティを起動) を実行します。SwitchPreference
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)
{
if(preference instanceof SwitchPreference){
// My Action
}
}
Android 4.4.4 では、このアクションは、このコントロール (タイトル) の左側を押したときにのみ実行され、スイッチの状態を変更したときには実行されませんでした。
Android 5.0.1 では、スイッチの状態を変更しても onPreferenceTreeClick() が呼び出され、2 つのケースを区別する方法が見つかりませんでした。
Android 5.0.1 のバグですか、それとも問題なく動作させる方法はありますか?