databinding 使用步骤
1、app build.gradle中添加代码
android { compileSdkVersion 25 buildToolsVersion "25.0.2" //添加这行就算引入了 dataBinding { enabled = true } defaultConfig { ....... } buildTypes { ......... } }
2、在xml布局文件中,添加根布局 <layout> ....</layout>
3、activity的oncreate方法中 添加
ActivityMeiZiBinding viewDataBinding = DataBindingUtil.setContentView(this, R.layout.activity_mei_zi);
用上面这一行取代原activity的setcontentview();
这个ActivityMeiZiBinding是框架生成的类,注意它的命名 是按 布局文件来的,有下划线的都把下划线去掉 ,然后后面的首字母大写
R.layout.activity_mei_zi =》ActivityMeiZiBinding
4、此时你会发现在as中使用 viewDataBinding. 就会提示出你布局文件中的控件,也就是直接使用了。不过命名跟你的id名有点不同,规则跟3中类的命名规则相同
一般规则是 如果id使用下划线,则下划线去掉,后面的 首字母大写 比如 id为 my_edittext 会变成 myEdittext
这时就相当于已经对 该控件findviewbyid了,接下来就可以正常操作了。如果你只是为了达到 取代findviewbyid的操作,到这个地方就算完成了
5、当然databinding的功能远不止这么点
ui绑定: 其实使用databinding我们在布局中连控件的id也不需要写了,对,就是这么屌。
在布局文件中添加标签
name相当于变量名,type相当于类型。一般就是提供数据的javabean的全类名 <data> <variable name="personalinfobean" type="com.example.apple.xiaohecun.model.bean.PersonalInfoBean"/> </data>
然后把控件的id都删掉。这时,你4中应用的binding. 就会报红。低版本studio需要rebuild一下
6、然后在你请求好数据的地方把 请求好的bean设置进去就OK了
PersonalInfoBean personalInfoBean=getPersonalInfo();
viewDataBinding.setPersonalinfobean(personalInfoBean);