91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發教程 - 使用Data Binding(八)使用自定義Interface

發布時間:2020-06-17 22:23:29 來源:網絡 閱讀:337 作者:羅伊德666 欄目:移動開發

本系列目錄

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

為什么要使用自定義Interface

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

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

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

使用自定義接口

  1. 首先定義一個接口

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

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

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

    mBinding.setIMainActivity(this);

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

  5. 布局中調用接口的方法
    <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(或任意對象)中的方法了,本文以簡單的點擊事件及簡單的事件進行用法的舉例,大家可以根據自己的業務應用到更多的場景中。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

象山县| 沁源县| 哈巴河县| 神农架林区| 永年县| 荣昌县| 苍梧县| 噶尔县| 开鲁县| 龙川县| 鄂尔多斯市| 周至县| 卢龙县| 五原县| 新巴尔虎左旗| 岗巴县| 五家渠市| 行唐县| 玛纳斯县| 文安县| 和田县| 高碑店市| 托克逊县| 罗甸县| 诸城市| 平度市| 余姚市| 汾阳市| 炉霍县| 汝州市| 河间市| 宣恩县| 女性| 从化市| 新晃| 商城县| 黔西| 大庆市| 兴仁县| 科技| 福安市|