Fragment&&Fragment之間傳值的2種方式

github地址

https://github.com/zhouxu88/Fragment_Fragment_Data.git

一咬腕、使用接口件甥,通過Activity宿主作為中間橋梁合砂,進(jìn)行數(shù)據(jù)交互

1)定義數(shù)據(jù)接口
2)在Activity中實(shí)現(xiàn)該接口愚争,并實(shí)現(xiàn)接口中定義的方法
3)在Fragment A中聲明接口對(duì)象,并調(diào)用接口中的方法
4)Activity中的接口回調(diào)中毒返,向Fragment B傳遞數(shù)據(jù)

關(guān)鍵代碼
接口:

public interface IAddListener { 
   void update(int count); //更新數(shù)據(jù)
}

AFragment:

public class AFragment extends Fragment {  
      private int count; //計(jì)數(shù)器渊跋,表示向Fragment B傳遞的數(shù)據(jù)   
      private IAddListener listener;   
       @Override 
       public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {      
            View view = inflater.inflate(R.layout.fragment_a, container, false);                
            initView(view);   
             return view;   
   }   

     //初始化View  
      private void initView(View view) {        
      view.findViewById(R.id.btn_add).setOnClickListener(new  View.OnClickListener() {        
      @Override         
      public void onClick(View v) {            
      //數(shù)字加1腊嗡,向Fragment B傳遞數(shù)據(jù)          
      count++;            
      listener.update(count); //傳遞數(shù)據(jù)                
      this.listener = listener; 
   }
}

Activity:

public class MainActivity extends AppCompatActivity implements IAddListener{   
     private FragmentManager fragmentManager;   
     @Override  
     protected void onCreate(Bundle savedInstanceState) {        
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.activity_main);       
        initFragment();    
  }   

 //初始化Fragment  
  private void initFragment() {      
      fragmentManager = getSupportFragmentManager();        
      AFragment aFragment = new AFragment();      
      FragmentTransaction transaction =     
      fragmentManager.beginTransaction();        
      transaction.add(R.id.fragment_a,aFragment,"AFragment");        
      transaction.add(R.id.fragment_b,new BFragment(),"BFragment");        
      transaction.commit();        
      aFragment.setIAddListener(this); //傳遞接口對(duì)象    
}   

   //回調(diào)的接口   
   @Override   
   public void update(int count) {       
     BFragment bFragment = (BFragment) fragmentManager.findFragmentByTag("BFragment");        
     bFragment.update(count);  
  }
}

BFragment:

public class BFragment extends Fragment {  
    private TextView resultTv;   


     @Override  
     public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {      
        View view = inflater.inflate(R.layout.fragment_b, container, false);        
        initView(view);    
        return view;   
 }    
 
 
  //初始化View  
  private void initView(View view) {     
       resultTv = (TextView) view.findViewById(R.id.result_tv);   
 }  

  //供Activity調(diào)用的方法  
  public void update(int count) {        
      resultTv.setText(String.valueOf(count)); 
   }
}

二、EventBus傳值

關(guān)鍵代碼
AFragment:

EventBus.getDefault().post(Integer.valueOf(count));

BFragment:

@Overridepublic void onAttach(Context context) {    
    super.onAttach(context);   
     //注冊(cè)    
    EventBus.getDefault().register(this);}

@Overridepublic void onDestroyView() { 
   super.onDestroyView();    //解綁    
EventBus.getDefault().unregister(this);
}
//事件接收
@Subscribe
public void onEvent(Integer count){    
resultTv.setText(String.valueOf(count));   
 Toast.makeText(getContext(), "傳遞數(shù)據(jù)成功", Toast.LENGTH_SHORT).show();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拾酝,一起剝皮案震驚了整個(gè)濱河市燕少,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒿囤,老刑警劉巖客们,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異材诽,居然都是意外死亡底挫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門脸侥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來建邓,“玉大人,你說我怎么就攤上這事睁枕」俦撸” “怎么了沸手?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長注簿。 經(jīng)常有香客問我罐氨,道長,這世上最難降的妖魔是什么滩援? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任栅隐,我火速辦了婚禮,結(jié)果婚禮上玩徊,老公的妹妹穿的比我還像新娘租悄。我一直安慰自己,他們只是感情好恩袱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布泣棋。 她就那樣靜靜地躺著,像睡著了一般畔塔。 火紅的嫁衣襯著肌膚如雪潭辈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天澈吨,我揣著相機(jī)與錄音把敢,去河邊找鬼。 笑死谅辣,一個(gè)胖子當(dāng)著我的面吹牛修赞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桑阶,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柏副,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了蚣录?” 一聲冷哼從身側(cè)響起割择,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎萎河,沒想到半個(gè)月后荔泳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡公壤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年换可,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厦幅。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沾鳄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出确憨,到底是詐尸還是另有隱情译荞,我是刑警寧澤瓤的,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站吞歼,受9級(jí)特大地震影響圈膏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜篙骡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一稽坤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糯俗,春花似錦尿褪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淘正,卻和暖如春摆马,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸿吆。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國打工囤采, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伞剑。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓斑唬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親黎泣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,085評(píng)論 25 707
  • 它的名字叫納米噴霧補(bǔ)水儀缤谎,它價(jià)格實(shí)惠抒倚,而且很實(shí)用。 外形:它的樣子好似一個(gè)圓桶豎立在那里坷澡。但它比圓桶小多了托呕,它大約...
    邵羿哲閱讀 489評(píng)論 2 3
  • 1、仔細(xì)觀察其他俱樂部的會(huì)議流程和會(huì)議細(xì)則介紹频敛,并對(duì)比與平時(shí)例會(huì)的不同 2项郊、對(duì)比頭馬比賽細(xì)則的書,將比賽規(guī)則與安排...
    Lucinda_seven閱讀 266評(píng)論 0 0
  • 作者:小馮 蝴蝶在無憂無慮的日子里任洞,遇見了滄海蓄喇。遠(yuǎn)遠(yuǎn)看去,滄海無邊無際交掏,涵蓋了太多的內(nèi)容妆偏。這一切令他著迷。...
    瑞霞微陽閱讀 628評(píng)論 0 1
  • 接上回 關(guān)于糖度與酸度盅弛,有一些關(guān)系需要注意: 1.糖度能夠掩蓋酸度的感知钱骂,在糖度比如高的時(shí)候,有時(shí)不容易感受酒的酸...
    明暗之間閱讀 390評(píng)論 0 0