Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对String[]类型的对象进行数据绑定?_Java_Android_Android Databinding - Fatal编程技术网

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&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]}"

…
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&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]}"