我正在尝试使用新的Android数据绑定库,并尝试使用所选值填充微调器时出现以下错误.
错误消息(在Android Studio中编译期间):
错误:任务':app:compileDebugJavaWithJavac'的执行失败.java.lang.RuntimeException:发现数据绑定错误.****/数据绑定错误****消息:无法找到参数类型为java.lang.String的属性'app:selection'的setter.file:/Users/ove/Code/AndroidStudio/Samples/Receipts/app/src/main/res/layout/dialogfragment_inputamount_db.xml loc:40:29 - 40:44****\data binding error****
我的布局文件看起来如下(不完整):
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="receipt"
type="com.example.model.Receipt" />
</data>
</LinearLayout>
<Spinner
android:layout_width="wrap_content"
android:id="@+id/currency"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:entries="@array/currency_array"
app:selection="@{receipt.currency}" />
</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
那些设法获得数据绑定与旋转器一起工作的人?
奥维
小智 2
创建一个 BindingUtils 类并粘贴 setSelection 方法
public class BindingUtils
{
@BindingAdapter({"bind:selection"})
public static void setSelection(Spinner spinner, int position)
{
spinner.setSelection(position);
}
}
Run Code Online (Sandbox Code Playgroud)
内部旋转器
app:selection="@{receipt.currencyIdx}"
Run Code Online (Sandbox Code Playgroud)
这就是你所要做的。
| 归档时间: |
|
| 查看次数: |
2385 次 |
| 最近记录: |