android中fragment和activity之間相互連信

來源:互聯網
上載者:User

標籤:android   style   class   code   java   ext   

在用到fragment的時候,老是會遇到一個問題,就是fragment與activity之間的通訊。下面就來記錄一下activity和fragment之間 通過實現介面來互相通訊的方法。

1. activity 向fragment發出通訊,就這麼寫:

 

 

     private OnMainListener mainListener;

 

     // 綁定介面

     @Override

     public void onAttachFragment(Fragmentfragment) {

 

          try {

               mainListener = (OnMainListener)fragment;

          } catch (Exception e) {

               throw newClassCastException(this.toString() + " must implementOnMainListener");

          }

          super.onAttachFragment(fragment);

     }

 

     // 介面

     public interface OnMainListener {

          public void onMainAction();

     }

 

onMainAction方法是activity向fragment發出通訊的方法,裡面可以放參數, 在要發出通訊的地方直接調用該方法即可。

 

在對應的fragment裡面要這麼寫:

 

public class MyFragment extends Fragment implementsOnMainListener {

     ……………………

 

 

     @Override

     public voidonMainAction() {

          //這裡是實現通訊的介面

     }

 

 

2. fragment向activity 發出通訊:(和前面差不多)

 

 

     private OnFragmentListener mListener;

 

     @Override

     public void onAttach(Activity activity) {

          super.onAttach(activity);

          try {

               mListener = (OnFragmentListener) activity;

          } catch (ClassCastException e) {

               throw newClassCastException(activity.toString() + " must implement OnFragmentListener");

          }

     }

 

     public interface OnFragmentListener {

          public void onFragmentAction(intflag);

     }

 

 

在activity中 實現介面:

 

publicclass MainActivityextendsActivityimplementsOnFragmentListener{

………………

 

// 實現介面方法

@Override

public voidonFragmentAction(int flag) {

//實現通訊的介面

}

 

兩者都是通過介面的實現來進行通訊的,重要的地方就是分別在onAttachFragment和 onAttach方法中進行介面綁定。

通訊還有其他方法的,比如廣播、靜態handler等,這裡就不贅述了。

end~


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.