Java教程

Databinding:setTag(java.lang.Object)‘ on a null object reference 问题处理。

本文主要是介绍Databinding:setTag(java.lang.Object)‘ on a null object reference 问题处理。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

当自定义view使用databinding来赋值时,运行发现在BindingImpl类中报错:view.setTag(java.lang.Object)' on a null object reference。自定义view为null,分析猜测是由于自定义view的构造函数出了问题。经过反复测试发现,自定义view的四个构造函数必须重写,由于view源码中View(Context context)和View(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes)的实现方式不同,所以这两个构造方法重写后必须调用父类的构造函数,另外两个构造函数可以调用父类或者复用自己内部的其他构造函数。

//此构造函数必须调用父类的实现spuer()
View(Context context)

//此构造函数必须调用父类或复用子类的实现
View(Context context, @Nullable AttributeSet attrs)

//此构造函数必须调用父类或复用子类的实现
View(Context context, @Nullable AttributeSet attrs, int defStyleAttr)

//此构造函数必须调用父类的实现spuer()
View(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes)

这篇关于Databinding:setTag(java.lang.Object)‘ on a null object reference 问题处理。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!