Android设计模式MVVM之DataBinding简单使用
生活随笔
收集整理的這篇文章主要介紹了
Android设计模式MVVM之DataBinding简单使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
谷歌 I/O大會(huì)上介紹了一個(gè)非常厲害的新框架DataBinding, 數(shù)據(jù)綁定框架給我們帶來(lái)了很大的方便,以前我們可能需要在每個(gè)Activity里寫(xiě)很多的findViewById,不僅麻煩,還增加了代碼的耦合性,如果我們使用DataBinding,就可以?huà)仐壞敲炊嗟膄indViewById,省時(shí)省力。說(shuō)到這里,其實(shí)網(wǎng)上也有很多快速的注解框架,但是注解框架與DataBinding想比還是不好用,而且官網(wǎng)文檔說(shuō)DataBinding還能提高解析XML的速度,其實(shí)DataBinding的好用,不僅僅體現(xiàn)在可以省去使用很多啰嗦findViewById,還有很多。往下看你就會(huì)明白的。
1.添加依賴(lài)
android {....dataBinding {enabled = true } } 2.編寫(xiě)Javabean
public class User {private String name; private String age; public User(String name, String age) {this.name = name; this.age = 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; } } 3.編寫(xiě)xml布局
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" > <data> <variable name="user"//變量名稱(chēng) type="com.example.admin.mvvmuse.User" />//類(lèi)的全路徑 </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}" />//賦值 <TextView android:onClick="@{clickListener}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.age}" /> </LinearLayout> </layout> 4.在Activity中綁定數(shù)據(jù)
public class MainActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); ActivityMainBinding binding = DataBindingUtil.setContentView(this,R.layout.activity_main); User user = new User("mike","23"); binding.setUser(user); }} 5.綁定事件
<data> <variable name="clickListener" type="android.view.View.OnClickListener" /> --------- </data> <TextView android:onClick="@{clickListener}"//引用變量 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{user.age}" />
6.添加點(diǎn)擊事件
public class MainActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); User user = new User("mike", "23"); binding.setUser(user); binding.setClickListener(new View.OnClickListener() {@Override public void onClick(View v) {Toast.makeText(MainActivity.this, "nihao", Toast.LENGTH_SHORT).show(); }}); }
總結(jié)
以上是生活随笔為你收集整理的Android设计模式MVVM之DataBinding简单使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android中关于setLatestE
- 下一篇: Android自定义View绘制闪闪发光