Android DataBinding手把手入門教程
1、在build.gradle(Module)里引入依賴,然后重構(sync Now):
android {
......
dataBinding{
enabled true
}
}
2、找到想要改為dataBinding視圖的頁面,alt+enter彈出如下:

并選擇Convert to data binding layout自動轉換。
轉換之后效果應和下圖類似:

可以看到頁面出現了新的Layout和data的空標簽。(data 就是用來存放數據的)
3、接下來到對應的Activity里,聲明全局變量為視圖去掉下劃線改大寫+binding:
如視圖為activity_main,則對應聲明的databinding類型變量就是ActivityMainBinding類型,如下:

此時在Oncreate()里輸入如下代碼:
//binding的對象實例化,第二個參數為對應的視圖id //binding=DataBindingUtil.setContentView(this,視圖id); binding= DataBindingUtil.setContentView(this,R.layout.activity_data_banding_test); //你的ViewModel實例化,ViewModel部分就不再詳細講了,也可以用其他類型數據 viewModelWithDataBanding=new ViewModelProvider(this,new ViewModelProvider.NewInstanceFactory()).get(ViewModelWithDataBanding.class); //將你準備好的數據,可以是ViewModel,通過binding.setData();綁定到視圖 binding.setData(viewModelWithDataBanding); //設置綁定的生命周期,這句很必要!?。? binding.setLifecycleOwner(this);
4、再次返回你的視圖,綁定你的數據如下:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="data"
type="com.example.mytests.viewModels.ViewModelWithDataBanding"
/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.DataBandingTest">
<TextView
android:id="@+id/textView2_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(data.number)}"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.257" />
<Button
android:id="@+id/button2_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:onClick="@{()->data.add()}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2_1" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
首先,聲明變量<variable name="你自定義變量名,data" type="你之前.setData()的數據的數據類型"/>
然后,綁定變量如:
android:text="@{你自定義變量名.變量下的數據}";
綁定方法是注意:如:
android:onClick="@{()->data.add()}",需在方法前添加()->表示這是方法。
5、在視圖對應的activity中可通過你聲明的綁定對象來訪問對應的視圖控件,如:
需要設置id為button12的點擊事件,可直接用綁定對象.button12.setOnclickListener(this);來操作,減少了代碼的重復性,簡潔美觀。
操作控件案例截圖:

以上為DataBinding的簡單使用教程,希望大家支持!
到此這篇關于Android DataBinding手把手入門教程的文章就介紹到這了,更多相關Android DataBinding內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android百度地圖實現搜索和定位及自定義圖標繪制并點擊時彈出泡泡
這篇文章主要介紹了Android百度地圖實現搜索和定位及自定義圖標繪制并點擊時彈出泡泡的相關資料,需要的朋友可以參考下2016-01-01
EditText監(jiān)聽方法,實時的判斷輸入多少字符
在EditText提供了一個方法addTextChangedListener實現對輸入文本的監(jiān)控。本文分享了EditText監(jiān)聽方法案例,需要的朋友一起來看下吧2016-12-12
Android RecyclerView打造懸浮效果的實現代碼
本篇文章主要介紹了Android RecyclerView打造懸浮效果的實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
Android使用SwipeListView實現類似QQ的滑動刪除效果
這篇文章主要介紹了Android使用SwipeListView實現類似QQ的滑動刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08

