如何对 String[] 类型的对象进行数据绑定?
How do I databind an object of the String[] type?
我已经知道我可以为许多其他列表设置类型,但特别是对于 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>
也许你可以使用 stringArray:
@{@stringArray/fi}
而不是
@{(String[])
有几个在线示例可能会有所帮助:
进一步查看 String[]
类型,它似乎不是一个完整的类型(未定义大小)并且它不验证任何资源。 Android 文档提到的唯一有效集合类型在以下示例中:
<data>
<import type="android.util.SparseArray"/>
<import type="java.util.Map"/>
<import type="java.util.List"/>
<variable name="list" type="List<String>"/>
<variable name="sparse" type="SparseArray<String>"/>
<variable name="map" type="Map<String, String>"/>
<variable name="index" type="int"/>
<variable name="key" type="String"/>
</data>
…
android:text="@{list[index]}"
…
android:text="@{sparse[index]}"
…
android:text="@{map[key]}"
从 android 网站查看:
我已经知道我可以为许多其他列表设置类型,但特别是对于 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>
也许你可以使用 stringArray:
@{@stringArray/fi}
而不是
@{(String[])
有几个在线示例可能会有所帮助:
进一步查看 String[]
类型,它似乎不是一个完整的类型(未定义大小)并且它不验证任何资源。 Android 文档提到的唯一有效集合类型在以下示例中:
<data>
<import type="android.util.SparseArray"/>
<import type="java.util.Map"/>
<import type="java.util.List"/>
<variable name="list" type="List<String>"/>
<variable name="sparse" type="SparseArray<String>"/>
<variable name="map" type="Map<String, String>"/>
<variable name="index" type="int"/>
<variable name="key" type="String"/>
</data>
…
android:text="@{list[index]}"
…
android:text="@{sparse[index]}"
…
android:text="@{map[key]}"
从 android 网站查看: