Java 如何对String[]类型的对象进行数据绑定?
我已经知道,我可以为许多其他列表设置类型,但对于Java 如何对String[]类型的对象进行数据绑定?,java,android,android-databinding,Java,Android,Android Databinding,我已经知道,我可以为许多其他列表设置类型,但对于String[]尤其是,我目前必须将类型设置为Object,然后将其转换为String[] 使用String[]也不被接受 e、 g 也许您可以使用stringArray: @{@stringArray/fi} 而不是 @{(String[]) 网上有几个示例可能会有所帮助:进一步查看字符串[]类型,它似乎不是一个完整的类型(未定义大小),并且不会验证任何资源。Android文档提到的唯一有效集合类型如下例所示: <da
String[]
尤其是,我目前必须将类型设置为Object
,然后将其转换为String[]
使用String[]代码>也不被接受
e、 g
也许您可以使用stringArray:
@{@stringArray/fi}
而不是
@{(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:text=“@{list[index]}”
…
android:text=“@{sparse[index]}”
…
android:text=“@{map[key]}”
从android站点检查此项:
如果我使用的是xml数组,似乎是一个解决方案,但我想把问题仅限于寻址String[]
从在线示例(包括StackOverflow中的一些示例)中可以看出,此标记可以将任何String[]数据绑定到您的模型。是的,它适用于强制转换;但是我想知道,既然所有数据索引变量都必须在.xml文件的顶部进行类型定义,那么我如何避免将数组设置为定义为对象
。链接中的解决方案只是为了静态xml数组而对我提供的示例的进一步抽象。
<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]}"