首页 > 解决方案 > 从改造获得响应后如何更新 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);
    }
}

现在我在绑定适配器执行后得到了改造的响应,那么如何通知绑定我有数据并更新视图并再次调用绑定适配器?

标签: androidandroid-databindingandroid-binding-adapter

解决方案


几个小时后,我发现了您只需要添加的解决方案

notifyChange();

从 API 获得响应后。


推荐阅读