DataBinding注意事项Error parsing XML: duplicate attribute以及如何在listview中使用DataBinding...
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 > 6 7 <TextView 8 android:layout_width="wrap_content" 9 android:layout_height="wrap_content" 10 android:text="Hello World!" 11 /> 12 13 </LinearLayout>
1.反例:像这个布局文件,如果要使用DataBinding的话,最外层要改成layout布局的,
但是我以为它最终要改成layout,所以我事先在加入complie和enabled代码前直接改成layout,
//DataBindingcompile "com.jakewharton.rxbinding:rxbinding:0.4.0"compile "com.jakewharton.rxbinding:rxbinding-design:0.4.0"
compileSdkVersion 24buildToolsVersion "24.0.0"dataBinding {enabled = true} }
导致在在加入complie和enabled代码后,点击右上角的Sync Now,一直报错
C:\android\ASWorkSpace\HighlyTechnical\tenical\build\intermediates\data-binding-layout-out\debug\layout\activity_main.xml Error:(11) Error parsing XML: duplicate attribute Error:Execution failed for task ':tenical:processDebugResources'. > com.android.ide.common.process.ProcessException: Failed to execute aapt Information:BUILD FAILED
莫名奇妙的错误。
搞了半天都不知道是什么原因,
原来是我们要将根布局变成layout,还要去掉根布局的width和height
1 <?xml version="1.0" encoding="utf-8"?> 2 <layout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 > 5 <RelativeLayout 6 android:layout_width="match_parent" 7 android:layout_height="match_parent"> 8 <TextView 9 android:id="@+id/tv_test" 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content" 12 android:text="Hello World!" /> 13 </RelativeLayout> 14 15 </layout>
2.
(1)获取到的DataBinding对象,是根据布局文件命名的
ListItemHomeBinding binding = DataBindingUtil.inflate(LayoutInflater.from(UIUtils.getContext()), R.layout.list_item_home, parent, false);
而布局文件要先实现根布局为layout,
1 <?xml version="1.0" encoding="utf-8"?> 2 <layout xmlns:android="http://schemas.android.com/apk/res/android" 3 > 4 <data> 5 <variable 6 name="ListBean" 7 type="com.weizh_000.googleplay.domain.HomeBean.ListBean"/> 8 9 </data> 10 11 <TextView 12 android:text="@{ListBean.downloadUrl}" 13 android:layout_width="match_parent" 14 android:layout_height="wrap_content" 15 android:textColor="#000" 16 android:id="@+id/textView" /> 17 </layout>
然后build一遍,对象名就出来了,但是按ctrl+2+L出来的不是这个名,是
ViewDataBinding,直接用这个也可以,或者自己手动敲对象名。 (2)不仅对象名会创建,对象方法也会被创建。对象方法名是根据data标签中
variable标签的name创建的,例如上面布局文件中的name为ListBean,那么就会创建一个方法名字为setListBean
1 @Override 2 public View getView(int position, View convertView, ViewGroup parent) { 3 ListItemHomeBinding binding; 4 if (convertView == null) { 5 binding = DataBindingUtil.inflate(LayoutInflater.from(UIUtils.getContext()), R.layout.list_item_home, parent, false); 6 convertView = binding.getRoot(); 7 convertView.setTag(binding); 8 } else { 9 binding = (ListItemHomeBinding) convertView.getTag(); 10 } 11 12 binding.setListBean(getItem(position)); 13 return convertView; 14 }
这是ListView的Adapter中的getView方法,同时也展示了如何在ListView中使用DataBinding。
3.要有data的标签,而data的标签又要有一个类名,所以又得创建一个类,通常这个类是javabean类
转载于:https://www.cnblogs.com/johnsonwei/p/5727771.html
DataBinding注意事项Error parsing XML: duplicate attribute以及如何在listview中使用DataBinding...相关推荐
- Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: jav
报错:Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: jav 原因:1.在对应的xml文件里面 #A# ...
- Error parsing XML: not well-formed (invalid token)
今天打开项目,居然报错??? 什么情况,见到报错是这个:Error parsing XML: not well-formed (invalid token) 代码是这样的: 什么鬼,从来没见过,然后网 ...
- com.badlogic.gdx.utils.SerializationException: Error parsing XML on line 1 near
出错提示: com.badlogic.gdx.utils.SerializationException: Error parsing XML on line 1 near: puzzle/puz.xm ...
- error:Error parsing XML:unbound prefix
今天写这段XML的时候总是提示这个错误. 解决方法是:在PreferenceScreen后面加一段:xmlns:android="http://schemas.android.com/apk ...
- error parsing xml:unbound prefix
就几行代码 , 就来个这个错误 ,就按照之前说找错的方法去找, 发现不好使就是不好使, 所以就上网找,找来找去都说是有的地方写错了,但是我没有地方写错啊. 于是再找还是说有的地方写错了,看来文件名的错 ...
- matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)
matlab分析xml文件 Today we will learn how to read the XML file in Java. We will also learn how to parse ...
- Android: AAPT: error: duplicate attribute.
Android: AAPT: error: duplicate attribute. 在使用 Android 的数据绑定时, 需要使用 <layout> 标签来包裹这个布局才能生成对应的数 ...
- 安卓虚拟机启动后报错: 类似 SDK Manager] Error: Error parsing .....devices.xml 解决方案
安卓虚拟机启动后报错: 类似 SDK Manager] Error: Error parsing .....devices.xml 解决方案 参考文章: (1)安卓虚拟机启动后报错: 类似 SDK M ...
- 6.mybatis异常:SQL Mapper Configuration,Error parsing Mapper XML,Could not resolve type alias
6.mybatis异常:SQL Mapper Configuration,Error parsing Mapper XML,Could not resolve type alias 参考文章: (1) ...
最新文章
- Hystrix的一个坑,queue中的run方法没有被执行?
- 互斥锁在python中的应用
- WebApi单元测试记录
- java设置类的字符格式_java类---与格式化相关的类
- mysql锁表查询_Mysql upate 更新锁表还是锁行测试
- javascript必须懂之冒泡事件
- 影响大数据和分析的5大趋势
- 3D变换矩阵的分解公式
- 计算机系统 基础知识点汇总,超全!!!
- 计算机毕业设计之流浪宠物管理系统
- iOS动画之CAAnimation
- 基于Python的Bangumi中动画片排行榜数据可视化分析
- 系统分析师成长之路 转
- html页面缩小图片缩小,如何缩小html页面中的图片大小?
- ipad上的游戏服务器无响应,教你 game center无法连接服务器解决办法及iOS9.3.2公测版已修复GameCenter无响应bug...
- 强化练习200题(二)正题:123
- 统计学习第十四周-方差分析
- 条形码EAN-13码和EAN-8码的原理
- 求逆序数-第12届蓝桥杯Scratch省赛3真题第3题
- 网易邮箱登录页面html5布局,css实现tab效果仿163邮箱样式