我想在片段之间发送数据。 第一个片段(名称是FragmentTabs)包含两个标签(片段)FragTab1和FragTab2。
我想在FragmentTabs和FragTab1之间发送数据
这是我的代码:
FragmentTabs中的:
mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost);
mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.contenttab);
mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("tab 1"),
fragment(id).getClass(), null);
函数片段:
private Fragment fragment(String id){
FragTab1 Ftab1 = new FragTab1();
Bundle dataBndl = new Bundle();
dataBndl.putString("id", id);
Ftab1.setArguments(dataBndl);
return Ftab1 ;
}
FragTab1中的:
Bundle bndl = getArguments();
getId = bndl.getString("id");
错误是在最后一条语句中引起的:getId = bndl.getString("id");
答案 0 :(得分:0)
使用Bundle发送字符串:
YourNewFragment fragment = new YourNewFragment ();
Bundle args = new Bundle();
args.putString("YourKey", "YourValue");
fragment.setArguments(args);
getFragmentManager().beginTransaction().add(R.id.container, fragment).commit();
在新片段的onCreateView中:
String value = getArguments().getString("YourKey");
答案 1 :(得分:0)
Navjot.jassal感谢您的帮助
解决了,我需要在mTabHost.addTab的参数中添加我的数据库:
mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost);
mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.contenttab);
Bundle dataBndl = new Bundle();
dataBndl.putString("id", id);
mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("tab 1"),
FragTab1.class, bundle);
FragTab1类没有变化