我正在学习使用数据绑定库。我开始知道它不需要手动调用findViewById()并使代码更健壮和可读。
为了理解使用方法,我做了以下工作:
制作了一个temp_layout.xml,其中包含2个带有ID'tv1'和'tv2'的文本视图
以root身份添加<layout>
标记
点击“构建项目”
现在我发现一个新的'TempLayoutBinding'类可用,其中包含变量'tv1'和'tv2'。
我的问题是,即使我已经在temp_layout.xml中指定了<layout>
标记,为什么还需要调用mBinding = DataBindingUtil.setContentView(...)
?
具体做什么?
答案 0 :(得分:3)
常规setContentView(layoutRes)
的作用是在当前活动中显示您的UI,并将其扩展到添加到活动上下文的视图中,因此您可以通过膨胀布局调用findViewById和其他方法。
在数据绑定中,常规setContentView(layoutRes)
被替换为DataBindingUtil.setContentView(context, layoutRes)
,它完成上述所有操作并创建绑定对象,它确实查找了ViewById和所有其他数据绑定相关的任务并为您提供准备好使用的绑定对象。
答案 1 :(得分:2)
DataBindingUtil.setContentView()
将Activity的内容视图设置为给定的布局并返回关联的绑定。它与活动setContentView()
相同。
如果您不致电DataBindingUtil.setContentView()
或setContentView()
,则只会出现空白屏幕。