DataBinding改写,将界面和数据进行绑定

LiveData观察就是通过setValue()

1.在bulid.gradle(Module:app)deafultConfig里加

dataBinding{            enabled true        }

2.将布局文件 Convert to data binding layout

转换后布局文件查看Text会多一对标签
Activity.java文件中会多一个对象类型 xxx(布局文件名)Binding 如:ActivityMainBinding binding;
原来的setContentView(R.layout.activity_main);就不需要了
绑定布局文件

ActivityMainBinding binding;binding= DataBindingUtil.setContentView(this,R.layout.activity_main);

绑定ViewModel(数据)文件

MyViewModel myViewModel;myViewModel=ViewModelProviders.of(this).get(MyViewModel.class);

控件什么的通过binding.id名访问
最后

binding.setData(myViewModel);binding.setLifecycleOwner(this);

3.数据和点击事件反向绑定

布局文件:

<data>        <variable            name="data"            type="com.example.databinding2.MyViewModel" />    </data>    <TextView    android:text="@{String.valueOf(data.number)}"    <Button    android:onClick="@{()->data.add()}"

观察就不需要了。
activity完整代码:

package com.example.databinding2;import androidx.appcompat.app.AppCompatActivity;import androidx.databinding.DataBindingUtil;import androidx.lifecycle.ViewModelProviders;import android.os.Bundle;import com.example.databinding2.databinding.ActivityMainBinding;public class MainActivity extends AppCompatActivity {    MyViewModel myViewModel;    ActivityMainBinding binding;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        binding= DataBindingUtil.setContentView(this,R.layout.activity_main);        myViewModel=ViewModelProviders.of(this).get(MyViewModel.class);        binding.setData(myViewModel);        binding.setLifecycleOwner(this);    }}

更多相关文章

  1. Android开发中的五大布局
  2. android studio导入第三方工具
  3. Android(安卓)adb不是内部或外部命令 (转)
  4. 移植ffmpeg到android_1
  5. android 支持的资源类型及其存放的目录
  6. android浮动布局
  7. Android:封装一个通用PopupWindow
  8. 使用ScrollView时解决android布局不能撑满全屏的问题
  9. Android入门第三篇之RelativeLayout、FrameLayout .

随机推荐

  1. Android Picasso Dropbox:如何将图像加载
  2. android MediaScanner 扫出来的ID3 MP3文
  3. osmdroid 6.0.1基础测试
  4. TextView在单击时发送电子邮件
  5. Android学习笔记--《第一行代码Android》
  6. android-eclipse-phonegap 2..9以下(包含
  7. 如何将文件路径从.java类文件传递到本机j
  8. Android开发之线程与线程池
  9. Android时间日期类小结
  10. Android studio Run 出现 红叉 AndroidRu