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

Gra*_*ark 5 java android android-databinding

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

String[]也不接受使用。

例如

    <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>
Run Code Online (Sandbox Code Playgroud)

Gra*_*ark 4

进一步研究该String[]类型,它似乎不是完整的类型(未定义大小)并且不验证任何资源。Android 文档提到的唯一有效的集合类型如下所示:

\n\n
<data>\n    <import type="android.util.SparseArray"/>\n    <import type="java.util.Map"/>\n    <import type="java.util.List"/>\n    <variable name="list" type="List&lt;String&gt;"/>\n    <variable name="sparse" type="SparseArray&lt;String&gt;"/>\n    <variable name="map" type="Map&lt;String, String&gt;"/>\n    <variable name="index" type="int"/>\n    <variable name="key" type="String"/>\n</data>\n\xe2\x80\xa6\nandroid:text="@{list[index]}"\n\xe2\x80\xa6\nandroid:text="@{sparse[index]}"\n\xe2\x80\xa6\nandroid:text="@{map[key]}"\n
Run Code Online (Sandbox Code Playgroud)\n