现在的位置: 首页 > 综合 > 正文

关于Preference相关控件修改出现的问题

2013年10月14日 ⁄ 综合 ⁄ 共 1114字 ⁄ 字号 评论关闭

与Preference先关的控件主要有:CheckBoxPrenference,ListPreference,EditTextPreference,PreferenceCategory,PreferenceScreen等,当你在你的xml中,布局了一个Preference,如下:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

     
  <cmcc.kvpioneer.ui.control.KVCheckboxPrefer
    android:key="PREF_SHOWNOTIFY_ICON"
    android:title="显示通知栏图标"  
    android:defaultValue="true"
  />   
   <cmcc.kvpioneer.ui.control.KVCheckboxPrefer
    android:key="PREF_REALTIME_MONITOR"
    android:title="实时监控"  
    android:defaultValue="true"
  />                       
  <cmcc.kvpioneer.ui.control.KVCheckboxPrefer
   android:key="PREF_TASK_KILL"
   android:title="定期云扫描" 
   android:defaultValue="true"
  />
  <cmcc.kvpioneer.ui.control.KVCheckboxPrefer
   android:key="PREF_VERSION_UPGRADE"
   android:title="版本升级" 
   android:defaultValue="true"
  /> 

</PreferenceScreen>

当你第一次运行与这个xml相关的ACTIVITY时候,那么会在data/data/应用程序列表/~.xml中生成相应的属性值,那么这个时候,如果你把KVCheckboxPrefer改成ListPreference,然后重新运行,就会出现错我,java.long.classcastexception,而引起的原因就是当编译器存放key名为PREF_VERSION_UPGRADE,类型为ListPreference的值的时候,发现已经有一个类型为KVCheckboxPrefer的具有同样Key值,所以会报异常,解决办法就是重新命名key,很简单,困扰了我一上午,囧!

http://blog.csdn.net/ssstudio/article/details/6232202

kkk

抱歉!评论已关闭.