Android開發教程 - 使用Data Binding(三)在Activity中的使用
修改activity佈局
如果使Activity支援Data Binding,在佈局的最外層加入"<layout>"標籤即可,由於是加在最外層,所以即使重構現有工程,所做的修改也非常簡單,並不會影響現有的佈局結構。
以下以MainActivity進行舉例。
修改前activty_main.xml的佈局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" > <TextView android:id="@+id/tv_example" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout>
修改後activty_main.xml的佈局:
<?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"> <data> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" > <TextView android:id="@+id/tv_example" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout> </layout>
這裡的<data>標籤中的元素放的是頁面所需的資料,後面的文章我們會講到,也可以直接ofollow,noindex">點選這裡 檢視,這裡我們暫且放一下,重點講Activity中Data Binding的使用。
在Activity中進行繫結
上面我們修改了佈局後,下面我們就可以在程式碼中進行資料綁定了。此時工程中會自動生成該佈局對應的java繫結檔案:ActivityMainBinding。仔細觀察就會發現,這個檔名就是將佈局的下劃線形式轉換成java規範的駝峰形式,後面加上Binding。
下面進入MainActivity.java中下面我們進行資料繫結操作。
如果寫程式碼過程中發現IDE並沒有自動正確生成對應的Binding類,則參考這篇文章:Android+Studio/">Android Studio不能正常生成相關類/方法的解決辦法 ,僅需幾步操作即可使IDE正常生成:
- 定義成員變數:
private ActivityMainBinding mBinding;
- 在onCreate()中初始化mBinding
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); mBinding.tvExample.setText("Binding Text"); }
此時就可以從mBinding中獲取到佈局中的所有View了,比如上面的mBinding.tvExample。
總結
Activity中使用Data Binding很簡單,省去了模版化的程式碼findViewById(),也避免了使用ButterKnife等第三方庫,省時省力。
除了獲取佈局中的元素,後續的文章我們會講到如何設定佈局中的資料,可以點選這裡 檢視。