如何对String []类型的对象进行数据绑定?

时间:2017-08-31 19:46:09

标签: java android android-databinding

我已经知道我可以为许多其他列表设置类型,但特别是对于String[],我目前必须将类型设置为Object并稍后将其转换为String[] }。

也不接受使用String[]

e.g。

    <data>
        <variable name="example" type="Object" />
    </data>   

    <Linearlayout>
        <android.support.v7.widget.AppCompatSpinner
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:entries="@{(String[]) example}"/>
    </LinearLayout>

3 个答案:

答案 0 :(得分:1)

也许你可以使用stringArray:

@{@stringArray/fi} 

而不是

@{(String[]) 

网上有一些可能有用的示例:android:entries in recyclerview

答案 1 :(得分:1)

进一步研究String[]类型,它似乎不是一个完整的类型(没有定义大小),也不验证任何资源。 Android文档提到的唯一有效集合类型在以下示例中:

<data>
    <import type="android.util.SparseArray"/>
    <import type="java.util.Map"/>
    <import type="java.util.List"/>
    <variable name="list" type="List&lt;String&gt;"/>
    <variable name="sparse" type="SparseArray&lt;String&gt;"/>
    <variable name="map" type="Map&lt;String, String&gt;"/>
    <variable name="index" type="int"/>
    <variable name="key" type="String"/>
</data>
…
android:text="@{list[index]}"
…
android:text="@{sparse[index]}"
…
android:text="@{map[key]}"

答案 2 :(得分:1)

从android网站检查此内容:

Check this from android site