如何在获得改造响应后更新 Imageview(android 数据绑定)
How to update Imageview(android data binding) after getting response from retrofit
以下是布局文件:
我正在使用自定义 setter 即 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 将获得对设备进行 biphergate 的 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 的回复后。
以下是布局文件: 我正在使用自定义 setter 即 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 将获得对设备进行 biphergate 的 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 的回复后。