Android開發(fā)教程-使用DataBinding(八)使用自定義Interface

本系列目錄

  • 使用Data Binding(一)介紹
  • 使用Data Binding(二)集成與配置
  • 使用Data Binding(三)在Activity中的使用
  • 使用Data Binding(四)在Fragment中的使用
  • 使用Data Binding(五)數(shù)據(jù)綁定
  • 使用Data Binding(六)RecyclerView Adapter中的使用
  • 使用Data Binding(七)使用BindingAdapter簡化圖片加載
  • 使用Data Binding(八)使用自定義Interface
  • 使用Data Binding Android Studio不能正常生成相關(guān)類/方法的解決辦法

為什么要使用自定義Interface

  • 我們平常在Android的開發(fā)中,比如如果要設(shè)置一個View的點擊事件,通常通過view.setOnClickListener()來實現(xiàn)的,這種方式略顯繁瑣,而且要通過findViewById()來獲取到此View的引用。使用了Data Binding技術(shù)以后,我們無需這樣做,可以直接通過在xml布局文件中設(shè)置一個Interface的實現(xiàn)來直接調(diào)用某個方法,非常方便。

    目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、古丈網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

  • 除了上面說的方便之外,當兩個Fragment之間需要通信時,Android是強烈不建議兩個Fragment之間直接通信的,它們之間的通信只能通過他們所在的Activity來進行中轉(zhuǎn)。使用Data Binding之后,這種情況處理起來就簡單了很多,通過將一個Interface的實現(xiàn)設(shè)置到兩個Fragment的xml布局文件中就可以實現(xiàn)。

下面我們來舉例說明這種方式的用法。

使用自定義接口

  1. 首先定義一個接口

    public interface IMainActivity {
        void clickedSomething();
    }
  2. 實現(xiàn)這個接口

    public class MainActivity extends AppCompatActivity implements IMainActivity{
        @Override
        public void clickedSomething() {
    
        }
    }
  3. 在布局文件的<data/>標簽中定義該接口的變量

    <variable
        name="iMainActivity"
        type="cn.examplecode.androiddatabinding.IMainActivity"/>
  4. 通過binding設(shè)置這個變量

    mBinding.setIMainActivity(this);

    如果發(fā)現(xiàn)并沒有這個方法,可能因為IDE并沒有自動生成這個方法,可以參考[這篇文章]()進行解決。

  5. 布局中調(diào)用接口的方法
    <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式的寫法

總結(jié)

通過簡單的幾步就可以在布局中直接調(diào)用Activity(或任意對象)中的方法了,本文以簡單的點擊事件及簡單的事件進行用法的舉例,大家可以根據(jù)自己的業(yè)務(wù)應(yīng)用到更多的場景中。

標題名稱:Android開發(fā)教程-使用DataBinding(八)使用自定義Interface
當前網(wǎng)址:http://bm7419.com/article24/jcsece.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化移動網(wǎng)站建設(shè)、軟件開發(fā)自適應(yīng)網(wǎng)站、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)