最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Android中接口回調(diào)、方法回調(diào)

 更新時間:2017年01月10日 09:10:45   作者:一杯清泉  
在Android開發(fā)中我們很多地方都用到了方法的回調(diào),回調(diào)就是把方法的定義和功能導(dǎo)入實(shí)現(xiàn)分開的一種機(jī)制,目的是為了解耦他的本質(zhì)是基于觀察者設(shè)計(jì)模式,即觀察者設(shè)計(jì)模式的的簡化版。本文主要對Android中接口回調(diào)、方法回調(diào)進(jìn)行詳細(xì)介紹,下面跟著小編一起來看下吧

在Android開發(fā)中我們很多地方都用到了方法的回調(diào),回調(diào)就是把方法的定義和功能導(dǎo)入實(shí)現(xiàn)分開的一種機(jī)制,目的是為了解耦他的本質(zhì)是基于觀察者設(shè)計(jì)模式,即觀察者設(shè)計(jì)模式的的簡化版,例如:在下載時候的進(jìn)度回調(diào),在adapter與activity之間的回調(diào),在javabean和fragment以及fragment之間的回調(diào)等等,回調(diào)的目的主要有兩個:其一是傳遞數(shù)據(jù),其二是保持?jǐn)?shù)據(jù)的同步更新。常用的有兩種形式,一是使用內(nèi)部類的形式,得到接口的子類對象,另一種是直接實(shí)現(xiàn)定義的接口。

一、內(nèi)部類的形式

1、在需要傳遞數(shù)據(jù)的一端定義一個接口,接口里面些需要監(jiān)聽的方法以及參數(shù)。

2、定義一個的接口類型的變量存儲數(shù)據(jù)。

3、創(chuàng)建一個公共的方法,讓外部調(diào)用,并且傳遞接口類型的參數(shù),給其定義的接口類型的數(shù)據(jù)初始化。

/** 
 * 定義一個接口 
 */ 
public interface  onListener{ 
  void OnListener(String code,String msg); 
} 
/** 
 *定義一個變量儲存數(shù)據(jù) 
 */ 
private onListener listener;  
/** 
 *提供公共的方法,并且初始化接口類型的數(shù)據(jù) 
 */ 
public void setListener( onListener listener){ 
  this.listener = listener; 
} 

4、在合適的位置調(diào)用接口里面的方法,傳遞數(shù)據(jù)。

/** 
 * 在合適的位置給其調(diào)用接口,給其賦值 
 */ 
if (listener!=null) { 
  listener.OnListener(rtncode,rtnmsg); 
} 

5、在需要獲取數(shù)據(jù)的地方,創(chuàng)建對象調(diào)方法。

Print print = new Print(); 
print.setListener(new PrintTicket.onListener() { 
  @Override 
  public void OnListener(String code, String msg) { 
    //在這里獲取數(shù)據(jù)進(jìn)行處理 
  } 
}); 

二、實(shí)現(xiàn)接口的形式

1、定義一個接口,可以另起包名,或者定義在類里面。

/** 
 * 定義一個接口 
 */ 
public interface  onListener{ 
  void OnListener(String code,String msg); 
} 

2、在需要傳遞數(shù)據(jù)的一端的構(gòu)造方法對接口進(jìn)行初始化。

public Print(OnListener listener) { 
  this.listener = listener; 
} 

3、在合適的位置調(diào)用接口里面的方法,傳遞數(shù)據(jù)。

/** 
 * 在合適的位置給其調(diào)用接口,給其賦值 
 */ 
if (listener!=null) { 
  listener.OnListener(rtncode,rtnmsg); 
} 

4、在需要獲取數(shù)據(jù)的地方創(chuàng)建對象傳遞參數(shù)。

Print print = new Print(this); 

這里面的this代指的是當(dāng)前頁面的activity,如果是fragment的話,需要重寫onAttach方法對其進(jìn)行初始化,強(qiáng)制類型轉(zhuǎn)換后獲取接口對象。此時在構(gòu)造方法里面?zhèn)鬟f接口得數(shù)據(jù)listener,如下二選一。

@Override 
public void onAttach(Activity activity) { 
  super.onAttach(activity); 
  OnListener listener = (OnListener) activity; 
} 
@Override 
public void onAttach(Context context) { 
  OnListener listener = (OnListener) activity; 
} 

注意:直接在fragment里面進(jìn)行獲取當(dāng)前fragment所在的activity,調(diào)用getActivity進(jìn)行強(qiáng)轉(zhuǎn)或者直接傳遞會報錯。報的錯誤為類型轉(zhuǎn)換錯誤。

5、讓activity實(shí)現(xiàn)此接口,重寫其抽象方法,在抽象法里面處理任務(wù)。

@Override 
public void OnListener(String rtncode, String rtnmsg) { 
  //在這里獲取數(shù)據(jù)進(jìn)行處理 
} 

以上兩個回調(diào)方法適用于兩個類之間的數(shù)據(jù)傳遞,現(xiàn)在來看看三個類之間的數(shù)據(jù)傳遞,javabean——>activity——>fragment之間的數(shù)據(jù)傳遞。需求:在javabean中獲取數(shù)據(jù),當(dāng)點(diǎn)擊fragment按鈕時候,要求顯示獲取的數(shù)據(jù)進(jìn)行相關(guān)業(yè)務(wù)處理。步驟如下:

1、新建一個包,定義一個接口,定義相關(guān)方法。

2、在javabean的構(gòu)造方法中對接口進(jìn)行初始化,并在適當(dāng)?shù)奈恢谜{(diào)用一下接口中的方法。

3、在fragment中重寫onAttach,對接口進(jìn)行初始化,強(qiáng)轉(zhuǎn)為接口類型。

4、創(chuàng)建對象,傳遞參數(shù)為3中強(qiáng)轉(zhuǎn)的接口類型。

5、讓acitivity實(shí)現(xiàn)接口,重寫抽象方法,在方法中進(jìn)行數(shù)據(jù)的處理。

具體代碼就省略了……

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • Android使用ftp方式實(shí)現(xiàn)文件上傳和下載功能

    Android使用ftp方式實(shí)現(xiàn)文件上傳和下載功能

    這篇文章主要介紹了Android使用ftp方式實(shí)現(xiàn)文件上傳和下載功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Android編程獲取網(wǎng)絡(luò)時間實(shí)例分析

    Android編程獲取網(wǎng)絡(luò)時間實(shí)例分析

    這篇文章主要介紹了Android編程獲取網(wǎng)絡(luò)時間,結(jié)合實(shí)例形式對比分析了Android通過訪問網(wǎng)絡(luò)及通過GPS獲取網(wǎng)絡(luò)時間的具體步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-01-01
  • Android應(yīng)用開發(fā)中觸摸屏手勢識別的實(shí)現(xiàn)方法解析

    Android應(yīng)用開發(fā)中觸摸屏手勢識別的實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Android應(yīng)用開發(fā)中觸摸屏手勢識別的實(shí)現(xiàn)方法解析,深入的部分則是對左右手勢的識別給出了相關(guān)編寫思路,需要的朋友可以參考下
    2016-02-02
  • Android網(wǎng)格視圖GridView的使用

    Android網(wǎng)格視圖GridView的使用

    網(wǎng)格視圖GridView的排列方式與矩陣類似,當(dāng)屏幕上有很多元素(文字、圖片或其他元素)需要按矩陣格式進(jìn)行顯示時,就可以使用GridView控件來實(shí)現(xiàn)
    2016-01-01
  • Android中ListView異步加載圖片錯位、重復(fù)、閃爍問題分析及解決方案

    Android中ListView異步加載圖片錯位、重復(fù)、閃爍問題分析及解決方案

    在Android所有系統(tǒng)自帶的控件當(dāng)中,ListView這個控件算是用法比較復(fù)雜的了,關(guān)鍵是用法復(fù)雜也就算了,它還經(jīng)常會出現(xiàn)一些稀奇古怪的問題,讓人非常頭疼,下面通過本篇文章給大家分享Android中ListView異步加載圖片錯位、重復(fù)、閃爍問題分析及解決方案,需要朋友可以參考
    2015-08-08
  • Android 實(shí)現(xiàn)ListView的點(diǎn)擊變色的實(shí)例

    Android 實(shí)現(xiàn)ListView的點(diǎn)擊變色的實(shí)例

    這篇文章主要介紹了Android 實(shí)現(xiàn)ListView的點(diǎn)擊變色的實(shí)例的相關(guān)資料,主要實(shí)現(xiàn)Android listveiw ItemClickListener寫入變色的功能,需要的朋友可以參考下
    2017-07-07
  • Kotlin定義其他類的實(shí)現(xiàn)詳解

    Kotlin定義其他類的實(shí)現(xiàn)詳解

    這篇文章主要介紹了Kotlin定義其他類的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 淺談Android手機(jī)的搶紅包插件

    淺談Android手機(jī)的搶紅包插件

    這篇文章主要介紹了淺談Android手機(jī)的搶紅包插件,對搶紅包插件感興趣的同學(xué)一定要看啊
    2021-04-04
  • 一文詳解Flutter Widget和App的生命周期

    一文詳解Flutter Widget和App的生命周期

    這篇文章主要為大家介紹了Flutter Widget和App的生命周期示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Android詳解之NoHttp最基本使用(無封裝)

    Android詳解之NoHttp最基本使用(無封裝)

    這篇文章主要介紹了Android詳解之NoHttp最基本使用,無封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論

象州县| 新巴尔虎左旗| 阳曲县| 莆田市| 平遥县| 怀远县| 和平区| 南丹县| 始兴县| 鹿邑县| 玉田县| 湖口县| 天等县| 木里| 莱芜市| 临汾市| 新田县| 柞水县| 青州市| 从江县| 手游| 建德市| 青川县| 临潭县| 沁水县| 五大连池市| 明溪县| 浦东新区| 开原市| 山东省| 台东县| 徐水县| 泽州县| 犍为县| 万宁市| 大冶市| 河北区| 垫江县| 普定县| 阳江市| 正蓝旗|