2017-12-01 4 views
0

Guten Tag an alle. Ich habe überprüftListener in Fragment und ich muss in diesem Listener eine Methode eingeben, aber Daten, die ich verwenden muss, habe ich in einem anderen Fragment. Wie sende ich diese Daten aus verschiedenen Fragmenten? Kann ich checkedListener von einem anderen Fragment aufrufen und eine Regel für ihn in der mainActivity-Klasse eingeben? Ich werde sehr dankbar sein für Hilfe. Vielen Dank.So rufen Sie Methode aus einem anderen Fragment

Wie Beispiel ich send sieshot, dass ich erstellen muss (erstes Quadrat oben ist MainFragment, die Daten der Summe -1 + 4 und unten mit Diamonts habe ich ein anderes Fragment, das checkedListener und ich muss vergleichen Summe aus verschiedenen Fragmenten und wenn sie wahr i in Text SetTextColor müssen): enter image description here

Antwort

0

als @Juan Antwort schlägt vor, dass Fragmente nicht direkt kommunizieren sollten. So schaffen Sie es.

ist dies Ihre Aktivitätsklasse, die die Schnittstelle in Fragment

public class MainActivity extends Activity implements FragmentInterface { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

    } 

    @Override 
    public void fragmentInterfaceMethod(int your_value) { 
     //use your_value to send it to another fragment 
    } 

} 

Ihre Fragment-Klasse definiert sind implementiert:

public class MyFragment extends Fragment { 

    public interface FragmentInterface { 
     void fragmentInterfaceMethod(int your_value); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     mView = inflater.inflate(R.layout.fragment_word_definition, container, false); 

     int myValue = 123; 
     ((FragmentInterface)getActivity()).fragmentInterfaceMethod(myValue); 

     return mView; 
    } 
} 
0

Fragmente bestimmt sind, nicht direkt miteinander zu sprechen. Sie können einen von zwei Dingen tun:

1 - Speichern Sie die Daten in einer Aktivität, die beiden Fragmenten gemeinsam ist, und lassen Sie jedes Fragment die Daten über die Aktivität abrufen und setzen.

oder

2 - Wenn die Daten wirklich eines des Fragments gebunden ist, dann hat das andere Fragment die Aktivität stellt die Daten zur Verfügung zu stellen. Und wiederum kann die Aktivität das Framework, das die Daten hat, bitten, es dem anfragenden Fraumentor zu übergeben.

Die Kommunikation zwischen Fragment und Aktivität kann mit einer Schnittstelle oder durch direktes Umwandeln der Aktivität in ihre konkrete Klasse erfolgen.

Und in die andere Richtung mit einem Verweis auf das entsprechende Fragment.

Hinweis: Wenn Sie einen ViewPager für Ihre Fragmente verwenden, benötigt das Abrufen der aktuellen Fragmentinstanz einige zusätzliche Schritte.

Verwandte Themen