2017-05-13 2 views
0

Je veux envoyer des données entre les fragments. le premier fragment (nom FragmentTabs) contient des étiquettes de remorquage (fragments aussi) FragTab1 et FragTab2.Envoyer des données entre fragments avec FragmentTabHost

je veux envoyer les données entre FragmentTabs et FragTab1

Voici mon code:

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

le fragment de fonction:

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

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

    Ftab1.setArguments(dataBndl); 
    return Ftab1 ; 

} 

dans FragTab1:

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

L'erreur est due à la dernière déclaration: getId = bndl.getString("id");

Répondre

0

Utiliser Bundle pour envoyer des cordes:

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

En onCreateView du nouveau Fragment:

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

Navjot.jassal Remerciez vous pour votre aide

Il est résolu, je dois d pour ajouter mon databundle dans le parametre de 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); 

Aucun changement de classe FragTab1