2017-05-13 2 views
0

Ich möchte Daten zwischen Fragment senden. Das erste Fragment (Name ist FragmentTabs) enthält zwei Tow-Tabs (auch Fragmente) FragTab1 und FragTab2.Senden von Daten zwischen Fragmenten mit FragmentTabHost

i die Daten zwischen FragmentTabs und FragTab1 senden möchten

Hier ist mein Code:

in 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); 

die Funktion Fragment:

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

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

    Ftab1.setArguments(dataBndl); 
    return Ftab1 ; 

} 

in FragTab1:

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

Der Fehler bei der letzten Anweisung verursacht: getId = bndl.getString("id");

Antwort

0

Verwenden Bundle String senden:

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

In onCreateView des neuen Fragment:

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

Navjot.jassal Thank Sie für Ihre Hilfe

Es ist gelöst, ich brauche d mein databundle im parametre von mTabHost.addTab hinzuzufügen:

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); 

Keine Änderung in FragTab1 Klasse

Verwandte Themen