1. 程式人生 > >【Android】53、碎片和活動之間進行通訊

【Android】53、碎片和活動之間進行通訊

本篇博文最後修改時間:2016年9月7日,16:48。

一、簡介

本篇介紹碎片和活動之間進行通訊。

二、實驗平臺
系統版本:Windows7 家庭普通版 32位作業系統。


博主:思跡
宣告:喝水不忘挖井人,轉載請註明出處。
原文地址:http://blog.csdn.net/omoiato

聯絡方式:[email protected]

Java零基礎入門交流群:541462902

四、碎片和活動之間進行通訊

雖然碎片都是嵌入在活動中顯示的,可是實際上它們的關係並沒有那麼親密。

碎片和活動都是各自存在於一個獨立的類當中的,它們之間並沒有那麼明顯的方式來直接進行通訊。

1、從佈局檔案中獲取碎片的方法

為了方便碎片和活動之間進行通訊,FragmentManager 提供了一個類似於findViewById()的方法,

專門用於從佈局檔案中獲取碎片的例項,程式碼如下所示:
RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);
呼叫FragmentManager 的findFragmentById()方法,可以在活動中得到相應碎片的例項,
然後就能輕鬆地呼叫碎片裡的方法了。

2、在碎片中呼叫活動裡的方法

在每個碎片中都可以通過呼叫getActivity()方法來得到和當前碎片相關聯
的活動例項,程式碼如下所示:

MainActivity activity = (MainActivity) getActivity();
有了活動例項之後,在碎片中呼叫活動裡的方法就變得輕而易舉了。

另外當碎片中需要使用Context 物件時,也可以使用getActivity()方法,

因為獲取到的活動本身就是一個Context物件了。

3、碎片和碎片之間通訊

首先在一個碎片中可以得到與它相關聯的活動,

然後再通過這個活動去獲取另外一個碎片的例項,

這樣也就實現了不同碎片之間的通訊功能。