您好,登錄后才能下訂單哦!
我們平常在Android的開發中,比如如果要設置一個View的點擊事件,通常通過view.setOnClickListener()來實現的,這種方式略顯繁瑣,而且要通過findViewById()來獲取到此View的引用。使用了Data Binding技術以后,我們無需這樣做,可以直接通過在xml布局文件中設置一個Interface的實現來直接調用某個方法,非常方便。
下面我們來舉例說明這種方式的用法。
首先定義一個接口
public interface IMainActivity {
void clickedSomething();
}
實現這個接口
public class MainActivity extends AppCompatActivity implements IMainActivity{
@Override
public void clickedSomething() {
}
}
在布局文件的<data/>標簽中定義該接口的變量
<variable
name="iMainActivity"
type="cn.examplecode.androiddatabinding.IMainActivity"/>
通過binding設置這個變量
mBinding.setIMainActivity(this);
如果發現并沒有這個方法,可能因為IDE并沒有自動生成這個方法,可以參考[這篇文章]()進行解決。
<TextView
android:id="@+id/tv_example"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{()->iMainActivity.clickedSomething()}"
android:textSize="16sp" />
注意:android:onClick()中的寫法是一種lambda式的寫法
通過簡單的幾步就可以在布局中直接調用Activity(或任意對象)中的方法了,本文以簡單的點擊事件及簡單的事件進行用法的舉例,大家可以根據自己的業務應用到更多的場景中。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。