3.使用廣播
不論我們有沒有用ViewPager,都可以用廣播實現兩個Fragment之間的通信,廣播算是這里最靈活的通信方式了,我們看看在左邊Fragment中發送廣播:
Intent?intent?=?new?Intent("showPro");
intent.putExtra("name",?name);
LocalBroadcastManager.getInstance(getActivity())
.sendBroadcast(intent);
在右邊Fragment中接收廣播:
LocalBroadcastManager?localBroadcastManager?=?LocalBroadcastManager
.getInstance(getActivity());
IntentFilter?intentFilter?=?new?IntentFilter();
intentFilter.addAction("showPro");
BroadcastReceiver?br?=?new?BroadcastReceiver()?{
@Override
public?void?onReceive(Context?context,?Intent?intent)?{
String?key?=?intent.getStringExtra("name");
list?=?map.get(key);
adapter?=?new?ArrayAdapter(getActivity(),
android.R.layout.simple_list_item_1,?list);
lv.setAdapter(adapter);
}
};
localBroadcastManager.registerReceiver(br,?intentFilter);
這些都是廣播基本的使用方法,我就不啰嗦了。
個人覺得,雖然廣播用起來最方便,但是在選擇使用哪種通信方式的時候,優先選擇上面兩種,如果前兩種方式都不可以,再考慮使用廣播。
續:
之前還忽略了一種,這里補充一下。
4.Fragment直接調用Activity中的public方法
我們也可以直接在Fragment中調用Activity中的公開方法,如下:
((MainActivity)?getActivity()).showProByName(name);
這里的showProByName就是我們上文貼出來的那個MainActivity中的方法。