Android在自定義類中實現(xiàn)自定義監(jiān)聽器方式
監(jiān)聽器可以說是Android開發(fā)中最常用的東西之一。我們通過監(jiān)聽器可以監(jiān)聽對象的各種變化事件,并進行一些需要的處理,相當有用,而且使用起來也很簡單。其實,監(jiān)聽器就相當于C++中的回調(diào)函數(shù),達到條件就回調(diào)執(zhí)行。
很多時候,我們在自定義控件類中也需要實現(xiàn)一些屬性變化的監(jiān)聽器,實現(xiàn)跟原生控件監(jiān)聽器一樣的功能。以下分幾個步驟說明自定義監(jiān)聽器實現(xiàn)和使用(以自定義類MyClass加載完成監(jiān)聽器為例):
一、自定義監(jiān)聽器的實現(xiàn):
1、 定義一個加載完成監(jiān)聽接口
//加載監(jiān)聽接口
public static interface LoadingListener {
public void onFinishedLoading(boolean success);
}
在MyClass自定義類中定義一個加載完成監(jiān)聽接口LoadingListener,接口中聲明一個方法onFinishedLoading給使用該接口的類實現(xiàn)具體過程,success表示是否加載成功.
2、 聲明接口并實現(xiàn)一個設置監(jiān)聽器的方法
聲明LoadingListener接口
private LoadingListener mLoadingListener;
提供設置LoadingListener方法
public void setLoadingListener(LoadingListener listener) {
mLoadingListener = listener;
}
3、 對應的情況下調(diào)用該接口的方法
在MyClass加載完成的時候則調(diào)用監(jiān)聽接口的方法
mLoadingListener.onFinishedLoading(true);
二、自定義監(jiān)聽器的使用:
1、給MyClass的實例實現(xiàn)監(jiān)聽接口中方法
mMyClass.setLoadingListener(new MyClass.LoadingListener() {
@Override
public void onFinishedLoading(boolean success) {
//執(zhí)行必要的處理
}
}
在onFinishedLoading函數(shù)中實現(xiàn)自定義的邏輯則可。
補充知識:android Activity 給 Fragment 設置回調(diào)的方法
這個實現(xiàn)方法很簡單,可分為3步走:
1.在fragment中定義接口
2.在activity的定義時實現(xiàn)這個接口
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的定義時實現(xiàn)該接口,如下:
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在自定義類中實現(xiàn)自定義監(jiān)聽器方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Android RecyclerView多類型布局卡片解決方案
這篇文章主要介紹了Android RecyclerView多類型布局卡片解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
Android Handler實現(xiàn)閃屏頁倒計時代碼
這篇文章主要介紹了Android Handler實現(xiàn)閃屏頁倒計時代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
android換膚功能 如何動態(tài)獲取控件中背景圖片的資源id?
這篇文章主要為大家詳細介紹了android換膚功能中如何動態(tài)獲取控件中背景圖片的資源id? ,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08
比較完整的android MP3 LRC歌詞滾動高亮顯示(附源碼)
比較完整的android MP3 LRC歌詞滾動高亮顯示(附源碼)。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
Android中使用TextView實現(xiàn)文字跑馬燈效果
本文主要介紹了Android中使用TextView實現(xiàn)文字走馬燈效果的方法解析。具有很好的參考價值。下面跟著小編一起來看下吧2017-04-04
Android雙向選擇控件DoubleSeekBar使用詳解
這篇文章主要為大家詳細介紹了Android雙向選擇控件DoubleSeekBar的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-08-08

