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

溫馨提示×

溫馨提示×

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

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

Android在自定義類中實現自定義監聽器方式

發布時間:2020-08-31 06:19:39 來源:腳本之家 閱讀:620 作者:Simon_Qi 欄目:移動開發

監聽器可以說是Android開發中最常用的東西之一。我們通過監聽器可以監聽對象的各種變化事件,并進行一些需要的處理,相當有用,而且使用起來也很簡單。其實,監聽器就相當于C++中的回調函數,達到條件就回調執行。

很多時候,我們在自定義控件類中也需要實現一些屬性變化的監聽器,實現跟原生控件監聽器一樣的功能。以下分幾個步驟說明自定義監聽器實現和使用(以自定義類MyClass加載完成監聽器為例):

一、自定義監聽器的實現:

1、 定義一個加載完成監聽接口

//加載監聽接口
public static interface LoadingListener {
 public void onFinishedLoading(boolean success);
}

在MyClass自定義類中定義一個加載完成監聽接口LoadingListener,接口中聲明一個方法onFinishedLoading給使用該接口的類實現具體過程,success表示是否加載成功.

2、 聲明接口并實現一個設置監聽器的方法

聲明LoadingListener接口

private LoadingListener mLoadingListener;

提供設置LoadingListener方法

public void setLoadingListener(LoadingListener listener) {
 mLoadingListener = listener;
}

3、 對應的情況下調用該接口的方法

在MyClass加載完成的時候則調用監聽接口的方法

mLoadingListener.onFinishedLoading(true);

二、自定義監聽器的使用:

1、給MyClass的實例實現監聽接口中方法

mMyClass.setLoadingListener(new MyClass.LoadingListener() {
   @Override
   public void onFinishedLoading(boolean success) {
   //執行必要的處理
  }
}

在onFinishedLoading函數中實現自定義的邏輯則可。

補充知識:android Activity 給 Fragment 設置回調的方法

這個實現方法很簡單,可分為3步走:

1.在fragment中定義接口

2.在activity的定義時實現這個接口

3. 在fragment中的 onAttach 方法中 將 Context 轉為 相應的接口;

代碼如下:

public class AllFragment extends Fragment {

//......代碼省略
 

 @Override
 public void onAttach(Context context) {
  super.onAttach(context);
  mOnChangeTabListener = (OnChangeTabListener) context;
 }

 public interface OnChangeTabListener{
  void onChangeTab(String tag);
 }
}

在activity的定義時實現該接口,如下:

public class SearchActivity extends AppCompactActivity implements AllFragment.OnChangeTabListener {

 //代碼省略
 @Override
 public void onChangeTab(String tag) {
  if ("應用".equals(tag)){
   mViewPager.setCurrentItem(1);
  }else {
   mViewPager.setCurrentItem(2);
  }
 }
}

以上這篇Android在自定義類中實現自定義監聽器方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

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

AI

西充县| 大埔县| 根河市| 屯昌县| 额尔古纳市| 荆州市| 霍林郭勒市| 常州市| 疏附县| 惠州市| 哈巴河县| 江西省| 酒泉市| 上犹县| 石屏县| 东乡县| 游戏| 林西县| 南安市| 昌都县| 锦州市| 莱州市| 慈利县| 琼中| 甘谷县| 贵港市| 西吉县| 凉山| 邛崃市| 安陆市| 兴安县| 万载县| 仙居县| 固原市| 景洪市| 东海县| 神木县| 五莲县| 康乐县| 耒阳市| 玛纳斯县|