大佬教程收集整理的这篇文章主要介绍了浅析Android企业级开发数据绑定技术,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
dataBinding{ enabled true }
package databinding; public class Users { public String name,address,email; private Boolean vip; public Boolean isVip() { return vip; } public void setVip(Boolean vip) { this.vip = vip; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getName() { return name; } public void setName(String Name) { this.name = name; } }
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://scheR_655_11845@as.android.com/apk/res/android"> <data> <variable name="user" type="databinding.Users"></variable> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@{user.vip ? 0xffff00ff:0xff000000}" android:text="@{user.namE}" android:textSize="25dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{user.address}" android:textSize="25dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{user.email}" android:textSize="25dp" /> </LinearLayout> </layout>
//DatabindingBing该类是自动@L_874_16@的,是xml文件名字(首字母大写)+Binding DatabindingBinding databindingBing=DataBindingUtil.setContentView(this,R.layout.databinding); Users users=new Users(); users.setName("李四"); users.setAddress("北京"); users.setEmail("1245334@163.com"); users.setVip(true); databindingBing.setUser(users);
<!--@H_874_0@
1:在@{}中可以拼接字符串,要求是双引号里只能用该形式 `ceshi`,但单引号里可以用双引号。
"@{user.name + `(` +user.address + `)`}"
2:@{}里可以做一些简单的判断,可以用赋值、判断等
(1)@{user.name == null ? user.address : user.namE}//如果是null的话,就显示user.address
(2)@{user.name ?? user.address}//如果user.name不为null就显示,为null就显示user.address
(3)@{}在做比较的时候 可以用转义 如< < 大于> &rt;
-->
------------------------------------------
这样做同样是可以显示左边是用户名,右边是用张三。数据绑定也是可以实现这样的效果,只要左边一个布局,右边一个布局就可以了,而且用的都是同一个user布局,只是加载两遍,数据是按照list方式传入,数据绑定的好处有很多,比如说:listview中的点击事件,对于item的点击就不说了,难点一般都是item里的一个小控件,我们往往就还要再写接口等用回调的方法证明它被点击了,而这个数据绑定就简单了,直接加上name,那么你点击的是哪一个用户名就会显示出来,下面写一写代码来捋一捋思路,具体写法如下:这个和上面代码有很多一样的地方,但为了方便你们看,我重新粘贴一遍
@H_874_0@首先还是写@L_313_1@model类Users,这里面我加上了点击事件,获取上下文用view.getContext()。与Users对应的user_layout.xml文件一个总得xml文件,用来加载两列user_layout文件 Activity中加载数据 1:首先还是写@L_313_1@model类Users,这里面我加上了点击事件,获取上下文用view.getContext()。package databinding; import android.view.View; import android.widget.Toast; public class Users { public String name,email; private Boolean vip; public Boolean isVip() { return vip; } public void setVip(Boolean vip) { this.vip = vip; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getName() { return name; } public void setName(String Name) { this.name = name; } public void click1(View view){ Toast.makeText(view.getContext(),"点击了:"+name,Toast.LENGTH_SHORT).show(); } public Boolean longClick1(View view){ Toast.makeText(view.getContext(),"长按了:"+name,Toast.LENGTH_SHORT).show(); return true; } }
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://scheR_655_11845@as.android.com/apk/res/android"> <data> <variable name="user" type="databinding.Users"></variable> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@{user.vip ? 0xffff00ff:0xff000000}" android:onClick="@{ user.click1}" android:text="@{user.name }" android:textSize="25dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:onLongClick="@{ user.longClick1}" android:text="@{user.address}" android:textSize="25dp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{user.email}" android:textSize="25dp" /> </LinearLayout> </layout>
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://scheR_655_11845@as.android.com/apk/res/android" xmlns:app="http://scheR_655_11845@as.android.com/apk/res-auto"> <data> <import type="databinding.Users"></import> <variable name="users" type="java.util.List<Users>"></variable> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent"> <include layout="@layout/user_layout" app:user="@{ users[0] }"></include> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent"> <include layout="@layout/user_layout" app:user="@{ users[1] }"></include> </LinearLayout> </LinearLayout> </layout>
//DatabindingBing该类是自动@L_874_16@的,是xml文件名字(首字母大写)+Binding DatabindingBinding databindingBinding=DataBindingUtil.setContentView(this,R.layout.databinding); Users users=new Users(); users.setName("用户名:"); users.setAddress("地址:"); users.setEmail("E-mail:"); users.setVip(true); Users users1=new Users(); users1.setName("李四"); users1.setAddress("北京"); users1.setEmail("1245334@163.com"); users1.setVip(true); List<Users> list=new ArrayList<>(); list.add(users); list.add(users1); databindingBinding.setUsers(list);
以上是大佬教程为你收集整理的浅析Android企业级开发数据绑定技术全部内容,希望文章能够帮你解决浅析Android企业级开发数据绑定技术所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。