Rav*_*avi 4 data-binding android android-databinding
我正在尝试RecyclerView
使用DataBinding 来创建Integer数据,我已经通过string-array
在中声明来尝试使用String数据string.xml
,这是我参考的答案。
现在,我正在尝试integer-array
使用xml 来实现它,但是无法从xml访问它。
这是我的integer.xml
<integer-array name="hours">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)
这是我的xml文件
<android.support.v7.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:entries="@{@integerArray/hours}">
Run Code Online (Sandbox Code Playgroud)
和我的自定义绑定适配器
@BindingAdapter("entries")
public static void entries(RecyclerView recyclerView, Integer[] array) {
recyclerView.setAdapter(new SimpleArrayAdapter(array));
}
Run Code Online (Sandbox Code Playgroud)
但这显示了我的错误 line 1:0 token recognition error at: '@integerArray/'
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.RuntimeException: Found data binding errors.
****/ data binding error ****msg:Identifiers must have user defined types from the XML file. hours is missing
Run Code Online (Sandbox Code Playgroud)
从文档本身找到了解决方案,我犯了一个愚蠢的错误。应该是intArray
而不是integerArray
,并且BindingAdapter
应该是int[]
app:entries="@{@intArray/hours}"
Run Code Online (Sandbox Code Playgroud)
和适配器应该是
@BindingAdapter("entries")
public static void entries(RecyclerView recyclerView, int[] array) {
recyclerView.setAdapter(new SimpleArrayAdapter(array));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1130 次 |
最近记录: |