作为Android的初学者,很多地方理解不深刻,这是自己的第一篇博客,当作是纪念了。
现在的需求是,将CheckBoxPreference中的CheckBox换成一个已经写好的,有动效Switch控件,增加切换时的动效。
虽然在preference.xml中可以指定widgetLayout的样式,也就是CheckBox可换成其他的控件
<pre name="code" class="html"><CheckBoxPreference
android:defaultValue="true"
android:key="pref_key_show_recent_recipents"
android:layout="@layout/cp_layout_preference"
android:summary="@string/smsmms_recent_recipents_summary"
android:title="@string/smsmms_recent_recipents"
android:widgetLayout="@layout/cp_layout_checkbox_switchbtn" />
<pre name="code" class="html">cp_layout_checkbox_switchbtn.xml是Switch的样式,但是这样的修改会出现一个问题,当点击CheckBoxPreference时,可以达到设置的效果,但是当点击Switch这个控件时,不能达到设置的效果。也就是说Switch的点击事件没有与Preference的点击事件关联起来。后来在网上发现Android4.0之后的版本新增了SwitchPreference控件,正好与我的需求相吻合,于是便将布局改成了如下
</pre><