美文网首页
DataBinding的简单使用

DataBinding的简单使用

作者: white_or_black | 来源:发表于2017-09-07 15:56 被阅读0次

1.在当前项目的module下面配置

dataBinding { enabled = true}

具体如下(注意同级关系):

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.example.administrator.databindingproject"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding {
        enabled = true
    }

}

2.在布局文件中的配置(假设已经存在一个实体类,比如User)

public class User {
    private String name;
    private String age;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}
注意布局文件的根节点变为了layout.

1.layout不可以有width和height属性
2.注意<data>和<variable的使用>
3.注意在TextView中的使用

  <?xml version="1.0" encoding="utf-8"?>
  <layout xmlns:android="http://schemas.android.com/apk/res/android"
     >
      
  <!--type中声明的就是我们的用户实体类User,一定要写全,带着包名,我们给这个实体类命名为user-->
      <data>
          <variable
              name="user"
              type="com.example.administrator.databindingproject.User" />
      </data>
      
        <!--原来的根节点-->
      <RelativeLayout
          android:layout_width="match_parent"
          android:layout_height="match_parent">
  
          <TextView
              android:id="@+id/tv_name"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_centerInParent="true"
              android:text="@{user.name}" />
  
          <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_below="@+id/tv_name"
              android:layout_centerHorizontal="true"
              android:text="@{user.age}" />
      </RelativeLayout>
  
  </layout>

3.在Activity中的使用

** 注意:去掉了之前的setContentView(R.layout.activity_main);**

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        User user = new User();
        user.setName("Mr wu");
        user.setAge("年方18");
        binding.setUser(user);
    }

注意:重新Rebuild项目。

下一篇文章[DataBinding设置集合数据]http://www.jianshu.com/p/caae9461aed4

相关文章

网友评论

      本文标题:DataBinding的简单使用

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