DataBinding
16lz
2021-12-04
在gradle中添加dataBinding,开启数据绑定。
android { compileSdkVersion 29 buildToolsVersion "29.0.3" defaultConfig { applicationId "com.moyu.databinding" minSdkVersion 28 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" dataBinding { enabled true } }
public class MainActivity extends AppCompatActivity { MyViewModel myViewModel; ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);// setContentView(R.layout.activity_main); binding = DataBindingUtil.setContentView(this,R.layout.activity_main); myViewModel = new ViewModelProvider(this).get(MyViewModel.class); myViewModel.getNumber().observe(this, new Observer<Integer>() { @Override public void onChanged(Integer integer) { binding.textView.setText(String.valueOf(integer)); } }); binding.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myViewModel.add(); } }); }}
使用数据绑定
ActivityMainBinding binding;
binding = DataBindingUtil.setContentView(this,R.layout.activity_main);
取代了
setContentView(R.layout.activity_main);
android:onClick="@{()->data.add()}"
取代了
// binding.button.setOnClickListener(new View.OnClickListener() {// @Override// public void onClick(View v) {// myViewModel.add();// }// });
binding.setData(myViewModel);binding.setLifecycleOwner(this);
取代了
//观察者// myViewModel.getNumber().observe(this, new Observer() { // @Override// public void onChanged(Integer integer) {// binding.textView.setText(String.valueOf(integer));// }// });
更多相关文章
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- python起点网月票榜字体反爬案例
- Android(安卓)SQLiteDatabase的使用
- android中的状态保存
- Android动态添加删除recycleview并动态保存recycleview中的的数
- Android异步线程OkHttp Post请求Json数据并解析
- android scrollview中嵌套expandablelistview
- 【Android】loadData与loadDataWithBaseURL的区别
- android之sqlite数据库初级