美文网首页
DataBingding的初步了解

DataBingding的初步了解

作者: 雨毅 | 来源:发表于2016-09-26 16:48 被阅读0次

    一,介绍

    谷歌去年就推出databinding框架,由于之前一直用的是butterknief,所以一直没有去学习,最近一直听朋友在群里面说该框架是多么的好用,所以忍不住趁着周日学习了一下。

    二,初步配置

    databinding的使用非常简单,因为是谷歌推出,所以只需要在在build.gradle中配置
    <pre>
    android {

    dataBinding {

    enabled =true} }
    </pre>
    前提是在androidStudio1.5版本以上

    三,代码演示

    首先列举一个简单的场景,在界面显示姓名和年龄,通过界面中的点击按钮时改变姓名
    xml布局

    <pre>

    <?xml version="1.0" encoding="utf-8"?>
    <layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
    <variable
    name="user"
    type="com.hgsoft.cardutils.activity.UserBean"></variable>

    </data>
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    <TextView
        android:id="@+id/name"
        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="@{user.age}"/>
    <Button
        android:id="@+id/btn"
        android:text="点击"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

    </LinearLayout>
    </layout>
    </pre>
    首先可以看出,跟普通布局的差别就是根节点变为<layout>,需要在data节点中声明variable属性,就是对应的你自定义的实体类,name为自己定义的别名,type中包名一定要写全,接下来就是在代码中的体现了。
    <pre>
    public class DataActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityDataBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_data);
        UserBean userBean=new UserBean("wangbin","24");
        binding.setUser(userBean);
    
    }
    

    }
    </pre>
    在oncreate方法里面用DataBindingUtil.setContentView代替setcontentview方法,然后调用binding.setuser(user就是在布局中声明的别名),这样就把值赋给了activity的对应控件。
    给按钮添加点击事件
    <pre>
    binding.btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

            }
        });
    

    </pre>

    四,优缺点

    由于学习时间比较简单,上面介绍只是很简单的使用,但是可以很直观的看出该框架比较简洁,减少了findviewbyid的代码,当然他肯定还有很多强大的地方,需要后面来深入学习,自我感觉针对一些简单的布局使用起来还是很方便,可是复杂的布局可能就有点吃力了,并且androidstudio支持并不是太好,以后空闲时间再深入学习一下,以便对该框架有一个全面的认识。

    相关文章

      网友评论

          本文标题:DataBingding的初步了解

          本文链接:https://www.haomeiwen.com/subject/dlwfyttx.html