2016-12-15 25 views
0

Ich habe vier Fragmente in einer einzigen Aktivität, jetzt möchte ich Daten von Aktivität zu allen Fragmenten senden. Durch Interface kann ich nur ein Fragment kommunizieren, bitte Ratschläge wie kann ich das erreichen.Kommunikation von Aktivität zu multiplem Fragment

+0

Möchten Sie, dass alle Fragmente Zugriff auf eine Variable in der Aktivität haben? – MichaelStoddart

+0

Gemeinsame Einstellungen können helfen. –

+0

@MichaelStoddart YES – deep

Antwort

1

Sie können Daten wie folgt von Activity to Fragment über interface senden.

1. Erstellen Sie die Schnittstelle, mit der Daten von Aktivität an Fragment FragmentCommunicator.java übergeben werden.

public interface FragmentCommunicator{ 
    public void passDataToFragment(Object data); 
} 

2. Definieren Fragment namens ExampleFragment.java.

public class ExampleFragment extends Fragments implements FragmentCommunicator{ 

    //as per Android Fragment documentation an empty constructor 
    public ExampleFragment(){  
    } 

    public static ExampleFragment newInstance(){ 
     return new ExampleFragment(); 
    } 

    ... 

    //FragmentCommunicator interface implementation 
    @Override 
    public void passDataToFragment(Object data) { 
     //you will get data here from activity, here we used data to set textview. 
     textView.setText((String)data); 
    } 

} 

3. Daten senden von Aktivität ExampleActivity.java

public class ExampleActivity extends AppCompatActivity { 

    public FragmentCommunicator fragmentCommunicator; 
    ... 

    public void sendDataToFragment(Fragment fragment, Object data){ 
     if (fragment instanceof FragmentCommunicator) { 
      fragmentCommunicator = (FragmentCommunicator) fragment; 
      fragmentCommunicator.passDataToFragment(data) 
     } 
    } 
} 

Hoffnung, das hilft!

Verwandte Themen