将值传递给制表符片段

时间:2014-11-05 17:14:47

标签: android android-fragments android-tabhost android-tabs

我在FragmentTabHost中有两个标签 - 我的问题是如何将数据传递到所选的片段?

这是我的代码:

mTabHost.addTab(mTabHost.newTabSpec("clips").setIndicator(("Clips")),
                MyClipsFragment.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("clipboards").setIndicator("Clipboards"),
                FragmentSearchMyClipboards.class, null);

3 个答案:

答案 0 :(得分:1)

捆绑中的

(3ed参数)

Bundle myBundle = new Bundle()
myBundle.putInt("paramKey", 1);
mTabHost.addTab(mTabHost.newTabSpec("clips").setIndicator(("Clips")),
                MyClipsFragment.class, myBundle);

答案 1 :(得分:0)

实际上问题归结为两个片段之间的通信。唯一的方法是通过同时包含fragment的活动。这可以通过在两个片段中声明一个接口并在活动中实现它们来完成。试着阅读http://developer.android.com/training/basics/fragments/communicating.html

答案 2 :(得分:0)

通过片段进行通信的最简单方法是使用EventBus - https://github.com/greenrobot/EventBus

方法文档: 1.将这些行添加到需要获取信息的片段中:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        EventBus.getDefault().register(this);
        return inflater.inflate(R.layout.event_list, container, false);

    }

@Override
    public void onDestroyView() {
        super.onDestroyView();
        EventBus.getDefault().unregister(this);
    }
public void onEventMainThread(EventBusMsg bus) { //Name your method like this   
        //here you get the info...
    }

2。从任何地方发布信息,如下:

EventBus.getDefault().post(new EventBusMsg(true));
  1. 制作要发布的对象的类:

    public class EventBusMsg {
    

    //一些信息...... }