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

相关文章
相关标签/搜索