Fragment與Fragment、Activity通訊的四種方式(三)

3.使用廣播android

不論咱們有沒有用ViewPager,均可以用廣播實現兩個Fragment之間的通訊,廣播算是這裏最靈活的通訊方式了,咱們看看在左邊Fragment中發送廣播:ide

Intent intent = new Intent("showPro");  code

                    intent.putExtra("name", name);  get

                    LocalBroadcastManager.getInstance(getActivity())  it

                            .sendBroadcast(intent);  io


在右邊Fragment中接收廣播:ast

LocalBroadcastManager localBroadcastManager = LocalBroadcastManager  map

        .getInstance(getActivity());  方法

IntentFilter intentFilter = new IntentFilter();  im

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<String>(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中的方法。

相關文章
相關標籤/搜索