如何在PreferenceScreen中设置xmlns路径 - 修改了ListPreferenceMultiSelect

时间:2013-04-10 11:56:20

标签: android preferences listpreference

我从网站下载了代码:http://blog.350nice.com/wp/archives/240

但是就行了:

<com.threefiftynice.android.preference.ListPreferenceMultiSelect 

是错误代码:

Multiple annotations found at this line:
    - error: No resource identifier found for attribute 'checkAll' in package 
     'com.threefiftynice.android'
    - error: No resource identifier found for attribute 'separator' in package 
     'com.threefiftynice.android'

这是带错误的XML:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:key="prefKey"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:threefiftyprefs="http://schemas.android.com/apk/res/com.threefiftynice.android">  
    <com.threefiftynice.android.preference.ListPreferenceMultiSelect 
        threefiftyprefs:checkAll="check" threefiftyprefs:separator="|"
        android:defaultValue="#ALL#"
        android:key="key"
        android:title="Image folders to monitor" android:dialogTitle="Image folders to monitor"
        android:summary="Specify which folders should be monitored for images"
        android:entries="@array/typeOfPoints"
        android:entryValues="@array/typeOfPointsID"/>
</PreferenceScreen>

我知道xmlns和ListPreferenceMultiselect的路径很糟糕 - 但是我尝试了很多可能的路径,而且所有这些路径都存在问题(这是来自原始包的网站的原始路径)。这是我的代码结构

enter image description here

我应该如何设置路径以使其工作?非常感谢你。

修改 将其归为xmlns:threefiftyprefs="schemas.android.com/apk/res-auto"后,它不会在xml中写入错误,但在运行时会抛出错误:

  

未捕获的处理程序:由于未捕获的异常而导致主线程退出   java.lang.RuntimeException:无法启动活动   ComponentInfo {goandknow.proximityalerts / goandknow.proximityalerts.EditPreferences}:   android.view.InflateException:二进制XML文件行#24:错误   膨胀班   com.threefiftynice.android.preference.ListPreferenceMultiSelect at   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)     在   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)     在android.app.ActivityThread.access $ 1800(ActivityThread.java:112)
    在   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1692)
    在android.os.Handler.dispatchMessage(Handler.java:99)at   android.os.Looper.loop(Looper.java:123)at   android.app.ActivityThread.main(ActivityThread.java:3948)at   java.lang.reflect.Method.invokeNative(Native Method)at   java.lang.reflect.Method.invoke(Method.java:521)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:782)     在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)at   dalvik.system.NativeStart.main(Native方法)引起:   android.view.InflateException:二进制XML文件行#24:错误   膨胀班   com.threefiftynice.android.preference.ListPreferenceMultiSelect at   android.preference.GenericInflater.createItemFromTag(GenericInflater.java:441)     在   android.preference.GenericInflater.rInflate(GenericInflater.java:481)     在   android.preference.GenericInflater.rInflate(GenericInflater.java:493)     在   android.preference.GenericInflater.inflate(GenericInflater.java:326)
    在   android.preference.GenericInflater.inflate(GenericInflater.java:263)
    在   android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:250)     在   android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:253)     在   goandknow.proximityalerts.EditPreferences.onCreate(EditPreferences.java:24)     在   android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)     在   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)     ......还有11个

这是第24行:

  

com.threefiftynice.android.preference.ListPreferenceMultiSelect

2 个答案:

答案 0 :(得分:1)

更改行

xmlns:threefiftyprefs="http://schemas.android.com/apk/res/com.threefiftynice.android"

xmlns:threefiftyprefs="http://schemas.android.com/apk/res-auto"

答案 1 :(得分:0)

应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:key="prefKey"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:threefiftyprefs="schemas.android.com/apk/res-auto">  
    <goandknow.models.ListPreferenceMultiSelect 
    threefiftyprefs:checkAll="check" threefiftyprefs:separator="|"
    android:defaultValue="#ALL#"
    android:key="key"
    android:title="Image folders to monitor" android:dialogTitle="Image folders"
    android:summary="Specify which folders should be monitored for images"
    android:entries="@array/typeOfPoints"
    android:entryValues="@array/typeOfPointsID"/>
</PreferenceScreen>

重要的:

<强>的xmlns:threefiftyprefs = “schemas.android.com/apk/res-auto” goandknow.models.ListPreferenceMultiSelect 感谢Sankar V.