日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

DataBinding注意事项Error parsing XML: duplicate attribute以及如何在listview中使用DataBinding...

發布時間:2025/3/17 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。