2013-01-11 14 views

risposta

15

Ecco un esempio per aiutarvi:

your_button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 

          Fragment frag = new YourFragment(Data yourdata); 


        FragmentTransaction ft = getFragmentManager().beginTransaction(); 
        ft.replace(R.id.fragment_container, frag); 
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
        ft.addToBackStack(null); 
        ft.commit(); 
       } 
    }); 

xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 


<FrameLayout android:name="fragments.YourInitialFragment" 
      android:id="@+id/fragment_container" 
      android:layout_weight="1" 
      android:layout_width="match_parent" 
      android:layout_height="0dip" /> 

</LinearLayout> 
+0

Grazie mille amico, questo codice risolve il mio grosso problema –

0

Avere una lettura della Android documentation on this subject:

Tutto Frammento-to-Frammento di comunicazione è fatta attraverso l'attività associata. Due frammenti non dovrebbero mai comunicare direttamente.

Infatti se si aggiunge un frammento utilizzando i modelli Studio Android, si aggiungerà il codice template che implementa il modello descritto in questo articolo tramite un'interfaccia.

Per risolvere il tuo scenario specifico, l'attività sarebbe implementare un'interfaccia simile a questo:

public interface OnFragmentInteractionListener 
{ 
    void onButtonClick(Data data); 
} 

Poi per l'attuazione di tale metodo, l'attività potrebbe eseguire lo spostamento utilizzando il FragmentManager come indicato in altra risposta. L'articolo fornisce una spiegazione molto più dettagliata di questo processo.

Problemi correlati