如何解决如何在android布局数据绑定中指定类不是字符串
我为 ImageView 添加了一个像这样的新绑定规则,它接受一个自定义对象:
java.time.format.DateTimeParseException: Text '2011-12-22' could not be parsed at index 2 at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)
at java.base/java.time.LocalTime.parse(LocalTime.java:465)
at SimpleBook.SimpleBookList.readFromCSV(SimpleBookList.java:44)
at SimpleBook.BasicJTable.<init>(BasicJTable.java:25)
at SimpleBook.BasicJTable.main(BasicJTable.java:40)
其中 @BindingAdapter({"custDrawable"})
public static void setCustDrawable(@NonNull ImageView view,HexDrawableModel model) {
view.setImageDrawable(new HexDrawable(model));
}
扩展 HexDrawable
,和
Drawable
所以...我不确定如何在我的布局文件中使用这个绑定适配器,因为它需要一个类而不是字符串。请让我知道使用此绑定适配器(如果可能的话)。
在布局 XML 中:
data class HexDrawable(val text: String,val color: Color)
解决方法
使用app:custDrawable={$variable}
在布局的 data
部分定义变量并将其绑定到相应的 java 文件中
我认为你应该像这样声明它们
@BindingAdapter("custDrawable")
public static void setCustDrawable(@NonNull ImageView view,HexDrawableModel model) {
view.setImageDrawable(new HexDrawable(model));
}
然后像这样使用它们
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
...
</data>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:custDrawable="@{yourVariableHere}/>
</layout>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。