我现在有一个微调,我想将数据加载到数据绑定功能的微调。我试图找到宣布在XML(https://developer.android.com/topic/libraries/data-binding/index.html#expression_language)的字符串数组,但没有满意的结果被发现的方式。
<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>
当它被建立,显示下面的错误。
错误:执行失败的任务“:应用程序:dataBindingProcessLayoutsDebug”。
org.xml.sax.SAXParseException;的systenId:文件:/ C:/用户/../应用程序/建立/中间体/ RES /合并/调试/布局/ testdialog.xml; LINENUMBER:24;得到columnnumber:30;与元素类型“空”不能包含“<”字符相关联的属性的“类型”的值。
然而,有一些困惑。
你导入SparseArray?
尝试这个 :
<data><import type="android.util.SparseArray"/></data>
这是一个非常简单的方法来设置与您的资源的array.xml一个字符串数组微调
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/spinner_array_items"/>
该spinner_array_items
应包含的项目列表在微调下拉菜单中找到。
更改SparseArray<String>
到SparseArray<String>
。
那么我的实现逻辑是基于你的,而是用来ArrayList
SparseArray
。
XML:
<data>
<import type="java.util.ArrayList" />
<variable
name="cities"
type="ArrayList<String>"
/>
</data>
<!-- Location -->
<Spinner
android:id="@+id/dd_city"
android:entries="@{cities}"
style="@style/dropdown"
/>
现在,我们只需要我们ArrayList
通过绑定类到cities
绑定变量。
至少数据将被结合:)。
TC。