2017-05-13 12 views
0

フラグメント間でデータを送信したい。 最初のフラグメント(名前はFragmentTabs)には、FragTab1とFragTab2のトウタブ(フラグメントも)が含まれています。FragmentTabHostでフラグメント間でデータを送信

私はここ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); 

機能フラグメント:FragTab1で

private Fragment fragment(String id){ 
    FragTab1 Ftab1 = new FragTab1(); 

    Bundle dataBndl = new Bundle(); 
    dataBndl.putString("id", id); 

    Ftab1.setArguments(dataBndl); 
    return Ftab1 ; 

} 

Bundle bndl = getArguments(); 
getId = bndl.getString("id"); 

エラーが最後のステートメントで発生します。新しいフラグメントのonCreateViewで

YourNewFragment fragment = new YourNewFragment(); 
    Bundle args = new Bundle(); 
    args.putString("YourKey", "YourValue"); 
    fragment.setArguments(args); 
    getFragmentManager().beginTransaction().add(R.id.container, fragment).commit(); 

String value = getArguments().getString("YourKey"); 

答えて

0

使用バンドルあなたの助けを借りて

これは解決済みですmTabHost.addTabのparametreで私databundleを追加するD:

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クラスの変更なし

0

Navjot.jassalの感謝の文字列を送信するためにgetId = bndl.getString("id");