之前一直有一个疑问:
活动中的绑定的方法是怎么来的
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ActivityMainBinding这个类根据布局文件名生成(id+Binding)
ActivityMainBinding viewDataBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
UserBean userBean = new UserBean();
userBean.setUserName("姜涛");
// setUser这个方法根据Variable标签的name属性自动生成
viewDataBinding.setUser(userBean);
}
}
所有教程都在说,使用databinding的方式是:
1、用ActivityMainBinding来绑定活动和控件
2、然后对实体类进行实体化,
3、根据XML中使用的名称,来使用set方法:setUser(XML代码如下)
<data>
<!--导入类-->
<import type="com.liangfeizc.databindingsamples.basic.User" />
<!--因为User已经导入, 所以可以简写类名-->
<variable name="user" type="User" />
</data>
那这个AcitivityMainBinding又不能用在其他的非主活动的活动中。该怎么用呢?
参考答案:https://stackoverflow.com/questions/35883452/cant-resolve-android-databinding-class
结论:这个绑定方法是根据你XML中的名称来的
Ps.
绑定activity和界面的另一种写法:
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());