android - 从改造获得响应后如何更新 Imageview(android 数据绑定)
问题描述
以下是布局文件:我正在使用自定义设置器,即 BindingAdapter
<ImageView
android:layout_width="0dp"
android:layout_height="100dp"
android:layout_margin="@dimen/_8dp"
android:layout_weight="4"
android:gravity="center"
android:padding="@dimen/_8dp"
bind:pic="@{item.deviceType}"
bind:status="@{item.deviceStatus}"
/>
pic 将获得 int 值,该值将设备的状态为布尔值。
这是我的绑定适配器:
@BindingAdapter(value = {"bind:status","bind:pic"},requireAll = false)
public static void setImage(ImageView imageview,boolean status,int type){
if(Integer.valueOf(type)==257){
if(status)
imageview.setImageResource(R.drawable.ic_lightbulb_on);
else
imageview.setImageResource(R.drawable.ic_lightbulb);
}else if(Integer.valueOf(type)==516){
if(status)
imageview.setImageResource(R.drawable.ic_open_door);
else
imageview.setImageResource(R.drawable.ic_closed_door);
}
}
现在我在绑定适配器执行后得到了改造的响应,那么如何通知绑定我有数据并更新视图并再次调用绑定适配器?
解决方案
几个小时后,我发现了您只需要添加的解决方案
notifyChange();
从 API 获得响应后。
推荐阅读
- uwp - VCLibs AppX 包在作为包依赖项侧加载时导致错误
- node.js - 应该如何正确处理 Azure 函数中 Azure 服务总线/主题客户端的打开和关闭?
- javascript - 尝试将所有“p”标签更改为以下代码中所述的指定颜色
- javascript - 如何将 Map 函数用于具有值的数组和另一个数组作为 Javascript 中的值
- go - go 1.10:不能在共享库中隐式包含 runtime/cgo
- sharepoint - 现代团队网站的超级菜单
- mysql - 导入两列并根据不同的分隔符和第一列将第二列分成多列和多行
- amazon-web-services - aws elasticsearch中长类型的范围查询
- javascript - DateFNSclosestIndexTo 返回 NaN
- javascript - 如何在 vuejs 中添加日期选择器(日期开始和结束日期)