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

Android Fragment與Activity之間的相互通信實(shí)例代碼

 更新時間:2016年11月01日 14:49:18   作者:Mersens  
這篇文章主要介紹了Android Fragment與Activity之間的相互通信的相關(guān)資料,并附簡單實(shí)例代碼,需要的朋友可以參考下

Android Fragment與Activity之間的相互通信

前言

自從Android3.0引入Fragment之后,主要是為了支持動態(tài)靈活的界面設(shè)計和屏幕的適配問題。Fragmenty不能單獨(dú)存在,必須依賴Activity作為視圖展示的一部分,同事它具有自己的生命周期,接收它自己的事件,具有更加靈活的特性,如今Fragment已經(jīng)被廣泛的應(yīng)用到App開發(fā)中,最常見的就是單Activity多Fragment的模式。Fragment依賴于Activity而存在,就不可避免需要與Activity進(jìn)行交互,在這里就簡單的介紹三種常用的交互方式。

一、接口方式

在fragment類中定義一個接口并在Activity中實(shí)現(xiàn)它。Fragment在onAttach()回調(diào)函數(shù)中獲取接口的具體實(shí)現(xiàn)的對象。后面,fragment就可以調(diào)用接口中的方法實(shí)現(xiàn)與Activity的通信。

在Android5.0之后廢除了onAttach(Activity activity)的方法,轉(zhuǎn)而使用onAttach(Context context),也就是傳遞的參數(shù)發(fā)生變化

public interface showMsgListener{
    void showMsg(String str);
  }

  private showMsgListener msgListener;

  @Override
  public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
      if(activity!=null){
        msgListener=(MainActivity)activity;
      }
    } catch (ClassCastException e) {
      throw new ClassCastException(activity.toString()
          + " must implement showMsgListener");
    }
  }

    mButton.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        msgListener.showMsg("Hello Android!(接口)");
      }
    });

在Activity中需要實(shí)現(xiàn)該接口

 @Override
  public void showMsg(String str) {
    Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
  }

二、廣播

在Activity中注冊廣播接收器,在Fragment中發(fā)送廣播

  private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
      String action = intent.getAction();
      if (action.equals(ACTION_NAME)) {
        String msg = intent.getStringExtra("msg");
        Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
      }

    }
  };

  public void registerBoradcastReceiver() {
    IntentFilter myIntentFilter = new IntentFilter();
    myIntentFilter.addAction(ACTION_NAME);
    registerReceiver(mBroadcastReceiver, myIntentFilter);
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mBroadcastReceiver);
  }

三、Fragment 從Activity獲取數(shù)據(jù)

在Fragment 的getInstance()方法中setArguments()設(shè)置參數(shù)

public static Fragment getInstance(String msg){
    Bundle bundle = new Bundle();
    bundle.putString("msg",msg);
    MainFragment fragment=new MainFragment();
    fragment.setArguments(bundle);
    return fragment;
  }

再通過getArguments()方法獲取

 public void initDatas() {
    Bundle bundle=getArguments();
    if(bundle!=null){
      String msg=bundle.getString("msg");
      Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show();
    }
  }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Flutter實(shí)現(xiàn)頁面路由及404路由攔截

    Flutter實(shí)現(xiàn)頁面路由及404路由攔截

    這篇文章介紹了Flutter實(shí)現(xiàn)頁面路由及404路由攔截的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • Android實(shí)現(xiàn)上下菜單雙向滑動

    Android實(shí)現(xiàn)上下菜單雙向滑動

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)上下菜單雙向滑動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Android LineChart繪制多條曲線的方法

    Android LineChart繪制多條曲線的方法

    這篇文章主要為大家詳細(xì)介紹了Android LineChart繪制多條曲線的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 如何在WorkManager中處理異步任務(wù)詳解

    如何在WorkManager中處理異步任務(wù)詳解

    這篇文章主要給大家介紹了關(guān)于如何在WorkManager中處理異步任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Android如何防止apk程序被反編譯(尊重勞動成果)

    Android如何防止apk程序被反編譯(尊重勞動成果)

    作為Android應(yīng)用開發(fā)者,不得不面對一個尷尬的局面,就是自己辛辛苦苦開發(fā)的應(yīng)用可以被別人很輕易的就反編譯出來,天下痛苦之事莫過于此啊,本文會介紹一種防止apk程序被反編譯的方法,感興趣的朋友可以了解下哦
    2013-01-01
  • Android中ConstraintLayout約束布局的最全詳細(xì)解析

    Android中ConstraintLayout約束布局的最全詳細(xì)解析

    ConstraintLayout是Google在Google?I/O?2016大會上發(fā)布的一種新的布局容器(ViewGroup),它支持以靈活的方式來放置子控件和調(diào)整子控件的大小,下面這篇文章主要給大家介紹了關(guān)于Android中ConstraintLayout約束布局詳細(xì)解析的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • android 顯示gif圖片實(shí)例詳解

    android 顯示gif圖片實(shí)例詳解

    本文主要介紹android 顯示gif圖片的知識,這里整理相關(guān)資料及簡單實(shí)例代碼,有需要的小伙伴可以參考下
    2016-09-09
  • Android編程實(shí)現(xiàn)計算兩個日期之間天數(shù)并打印所有日期的方法

    Android編程實(shí)現(xiàn)計算兩個日期之間天數(shù)并打印所有日期的方法

    這篇文章主要介紹了Android編程實(shí)現(xiàn)計算兩個日期之間天數(shù)并打印所有日期的方法,涉及Android日期時間相關(guān)轉(zhuǎn)換與運(yùn)算操作技巧,需要的朋友可以參考下
    2018-01-01
  • Android 架構(gòu)之?dāng)?shù)據(jù)庫框架升級

    Android 架構(gòu)之?dāng)?shù)據(jù)庫框架升級

    上一篇講解了# Android 架構(gòu)之?dāng)?shù)據(jù)框架搭建 ,里面含有數(shù)據(jù)庫最基礎(chǔ)的增刪改查功能,不過只考慮了單數(shù)據(jù)庫,開發(fā)者可以舉一反三按照對應(yīng)思路設(shè)計多數(shù)據(jù)庫架構(gòu)。 在本篇里,將會講解令開發(fā)者比較頭疼的數(shù)據(jù)庫升級,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • Android WebView開發(fā)之WebView與Native交互

    Android WebView開發(fā)之WebView與Native交互

    隨著H5的廣泛使用,Android開發(fā)過程中免不了會使用網(wǎng)頁來做展示,那么web與native之間的通信就顯得尤其重要了,其實(shí)際上是JavaScript與java之間的通信。本文將為大家詳細(xì)介紹二者是如何實(shí)現(xiàn)交互的,需要的朋友可以參考一下
    2021-12-12

最新評論

探索| 庐江县| 绵竹市| 吕梁市| 正宁县| 唐海县| 丽水市| 桦川县| 左云县| 大竹县| 鱼台县| 鲁山县| 右玉县| 台安县| 海淀区| 土默特右旗| 高州市| 彭水| 赣州市| 页游| 青川县| 上蔡县| 施秉县| 昭平县| 平罗县| 尖扎县| 土默特左旗| 德化县| 广东省| 石林| 康保县| 定兴县| 香河县| 萨迦县| 镇赉县| 句容市| 霞浦县| 满洲里市| 青冈县| 伊春市| 台州市|