2016-08-09 16 views
0

我现在有一个微调器,我想将数据加载到具有数据绑定功能的微调器。我试图找到在XML中声明字符串数组的方式(https://developer.android.com/topic/libraries/data-binding/index.html#expression_language),但未找到满意的结果。无法为使用Android数据绑定的微调器设置字符串数组

<layout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:apps="http://schemas.android.com/apk/res-auto"> 

<data> 
    <import type="android.util.SparseArray"/> 
    <variable 
     name="statuslist" 
     type="SparseArray<String>"/> 
</data> 
... 
<android.support.v7.widget.AppCompatSpinner 
     android:id="@+id/spn_status" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignStart="@+id/spinner1" 
     android:layout_below="@+id/btn2" 
     android:entries="@{statuslist}" 
     apps:adapter="@{statusAdapter}"/> 
</layout> 

构建时会显示以下错误。

错误:任务':app:dataBindingProcessLayoutsDebug'的执行失败。

org.xml.sax.SAXParseException; systemId: file:/C:/Users/../app/build/intermediates/res/merged/debug/layout/testdialog.xml; lineNumber: 24; columnNumber: 30; The value of attribute "type" associated with an element type "null" must not contain the '<' character.

但是,有一些困惑。

  1. 当我试图使用网站上显示的SparseArray。我在Android Studio XML Editor中发现了“无法解析sysmbol”。
  2. 我不知道它是为微调器设置数组值的正确方法,因为没有关于微调器数据绑定在网站上的官方说明。
+0

你在build.gradle中启用了数据绑定吗? – anhtuannd

+0

是的,我在build.gradle中启用了数据绑定。这里是我的Android Studio(版本:2.1.2,JavaVersion:1.7)的信息 –

回答

0

你有导入SparseArray吗?

试试这个:

<data><import type="android.util.SparseArray"/></data> 
+0

我忘了在这个问题中添加这个语句。我试过这个,但它不起作用 –

+2

SparseArray 更改为SparseArray < String>,再试一次 – FrankOy

+0

尝试这种方式,它仍然无法正常工作。 “无法解析符号”错误仍然显示 –

0

这是一个非常简单的方法来设置与您的资源的array.xml一个字符串数组微调

<Spinner 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:entries="@array/spinner_array_items"/> 

spinner_array_items应该包含列表的项目在微调下拉列表中找到。

相关问题