【发布时间】:2015-06-22 13:09:35
【问题描述】:
我有一个使用 SwitchPreference 的代码,该代码用于 Android 4.x,但是自从我将设备更新到 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 上,当我单击此 SwitchPreference 控件的标题时,我覆盖了 onPreferenceTreeClick() 以执行操作(在我的情况下启动设置活动)。
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)
{
if(preference instanceof SwitchPreference){
// My Action
}
}
在 Android 4.4.4 中,该 Action 仅在我按下此控件(标题)的左侧时才会执行,而不是在我更改开关状态时执行。
现在在 Android 5.0.1 中,即使我更改了开关状态,也会调用 onPreferenceTreeClick(),但我没有找到区分这两种情况的方法。
这是 Android 5.0.1 中的一个错误,还是有办法让这项工作干净利落地?
【问题讨论】:
-
看起来和这个类似的问题:stackoverflow.com/questions/30906487/…
标签: android-5.0-lollipop switchpreference