Jetpack学习(二)——databinding(4)--BindingAdapter

databinding学习第四天

BindingAdapter

BindingAdapter官方说绑定适配器提供的自定义方法

  • BindingAdapters.java
public class BindingAdapters {
   @BindingAdapter({"app:imageUrl", "app:placeHolder", "app:error"})
    public  static  void loadImage(ImageView imageView, String url,Drawable placeholder,Drawable error) {
    Glide.with(imageView.getContext())
            .load(url)
            .placeholder(placeholder)
            .error(error)
            .into(imageView);
    }
}
  • activity_other.xml



    
        
        

        
        
        
    

    

        
       
    

  • OtherActivity.java
public class OtherActivity extends AppCompatActivity implements View.OnClickListener {
    private ActivityOtherBinding  otherBinding;
    private   User user;
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        otherBinding= DataBindingUtil.setContentView(this,R.layout.activity_other);
        otherBinding.setError(getDrawable(R.mipmap.pic_error));
        otherBinding.setPlaceholder(getDrawable(R.mipmap.pic_loading));
        user=new User();
        otherBinding.setUser(user);
        user.imgUrl.set("https://up.enterdesk.com/edpic_360_360/e8/08/6e/e8086e39d5924405f75d42cdbb9dd34b.jpg");
        otherBinding.setMyClick(this);
    }

    @Override
    public void onClick(View view) {
        user.imgUrl.set("https://c-ssl.duitang.com/uploads/item/201802/27/20180227094809_JiL5V.thumb.700_0.jpeg");
        otherBinding.setUser(user);
    }
    public class User extends BaseObservable{
        public  final  ObservableField imgUrl=new ObservableField<>();
    }
}


图示:


Jetpack学习(二)——databinding(4)--BindingAdapter_第1张图片
图一
Jetpack学习(二)——databinding(4)--BindingAdapter_第2张图片
图二

你可能感兴趣的:(Jetpack学习(二)——databinding(4)--BindingAdapter)