Android MVVM 开发模式插件库 Android Data Binding Library
2016-11-09 14:37
639 查看
关于MVVM之类的可以自行从网上了解,比如:阮一峰----MVC,MVP 和 MVVM 的图示
Android Data Binding Library可以在layout布局xml文件中绑定数据,实现式图与业务逻辑分离。
相信大家的Gradle和Studio都在2.0以上了,在这些版本上只需要在build.gradle(Module:***)中的添加
在工程中建一个javabean,比如:
在activity_main.xml中
将MainActivity的setContentView修改
创建User实例对象
运行即会显示名字 Ray
Binding类的名字也可以自定义,只需在xml文件中修改<data>
或者<data
class=".MyDataBinding">
或者<data
class="com.zmn.MyDataBinding">
同时Data Binding还支持导入包,android自带的变量,布局引用,表达式,集合,资源文件使用。
引用布局phone_layout.xml
MainActivity代码如下
Android Data Binding Library可以在layout布局xml文件中绑定数据,实现式图与业务逻辑分离。
相信大家的Gradle和Studio都在2.0以上了,在这些版本上只需要在build.gradle(Module:***)中的添加
android { ....... dataBinding{ enabled = true } }
在工程中建一个javabean,比如:
public class User { public String name; public String phone; public boolean isMan; }
在activity_main.xml中
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="user" type="com.zhang.databinding.User" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.name}" /></LinearLayout></layout>
将MainActivity的setContentView修改
// setContentView(R.layout.activity_main); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
创建User实例对象
User user = new User(); user.name = "Ray"; user.phone = "12345"; user.isMan = true; binding.setUser(user);
运行即会显示名字 Ray
Binding类的名字也可以自定义,只需在xml文件中修改<data>
<data class="MyDataBinding">
或者<data
class=".MyDataBinding">
或者<data
class="com.zmn.MyDataBinding">
同时Data Binding还支持导入包,android自带的变量,布局引用,表达式,集合,资源文件使用。
<data class="MyDataBinding"> <import type="android.view.View" /> <import type="java.util.List" /> <variable name="user" type="com.zhang.databinding.User" /> <variable name="sex" type="String" /> <variable name="list" type="List<String>" />
<!--//不能使用<符号--></data>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.name}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{sex}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ray is a man ." android:visibility="@{user.isMan?View.VISIBLE:View.GONE}" /> <include layout="@layout/phone_layout" bind:user="@{user}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{list[0]}" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.isMan?@string/man:@string/woman}" />
引用布局phone_layout.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <data> <variable name="user" type="com.zhang.databinding.User" /> </data> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.phone}" /> </LinearLayout> </layout>
MainActivity代码如下
MyDataBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
User user = new User(); user.name = "Ray"; user.phone = "12345"; user.isMan = true; binding.setUser(user);
binding.setSex("男");
List<String> list = new ArrayList<>();
list.add("hello");
list.add("data");
list.add("list3");
binding.setList(list);
相关文章推荐
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- Android开发模式MVVM之DataBinding
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- android MVVM开发框架——(1)DataBinding 基础应用
- Android MVVM+DataBinding结合Dagger2进行开发
- Android基础——框架模式MVVM之DataBinding的实践
- android MVVM DataBinding
- Android databinding 开发参考
- Android开发之DataBinding的使用
- Could not find com.android.databinding:library:1.2.1. Required by: XXXXX:app:unspecified
- 谷歌I/O 2015 android 新特性 Data Binding Library(一)
- Could not find com.android.databinding:library:1.2.1. Required by: XXXXX:app:unspecified
- Android开发模式之MVC,MVP和MVVM的简单介绍与区别
- Android MVVM之Databinding(二) 使用篇
- Android 开发之dataBinding与ListView及事件