In der Android-Entwicklung ist Fragment eine wichtige Komponente zum Erstellen flexibler Benutzeroberflächen. Wenn wir Fragment verwenden, müssen wir manchmal Daten von einem Fragment in einem anderen Fragment abrufen. Dann können wir in der onViewCreated-Methode des Fragments die Daten in RecyclerView in anderen Fragmenten über die findViewById-Methode abrufen. Zunächst müssen wir sicherstellen, dass RecyclerView initialisiert und mit Daten gefüllt wurde, bevor wir die Daten abrufen. Dann können wir die Instanz des Zielfragments über die findFragmentById-Methode von FragmentManager abrufen und dann die Instanz von RecyclerView über die findViewById-Methode der Instanz abrufen. Schließlich können wir die Daten über den RecyclerView-Adapter abrufen. Auf diese Weise können wir die Daten von RecyclerView in einem anderen Fragment im aktuellen Fragment abrufen. Dies ist eine einfache und effektive Methode, die uns dabei helfen kann, die Übertragung und den Austausch von Daten in der Android-Entwicklung besser zu handhaben.
Ich habe Fragment Workoutfragment und ein Bundle zum Übertragen von Daten an Fragment Delitefragment:
fragmentmanager fragmentmanager = getfragmentmanager(); fragmenttransaction fragmenttransaction = fragmentmanager.begintransaction(); fragmenttransaction.replace(r.id.fragment_container, new delitefragment()); fragmenttransaction.commit();
In Delitefragment habe ich eine onviewcreated-Methode, bei der der Aufruf der Recycler-Ansichtsdaten gesperrt ist.
@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //******************************** getting data from DeliteFragment getParentFragmentManager().setFragmentResultListener("text from WOF to AFJ", this, new FragmentResultListener() { @Override public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle textBundle) { Integer number_workout_train_position = textBundle.getInt("text from WOF to AFJ"); String nameDayTrain = new CardSourceImplDayTrain(getActivity()).getCardData(number_workout_train_position).getTitle().toString(); } }); String nameDayTrainRW = nameDayTrain; recyclerView = view.findViewById(R.id.train_delite_recycleView); cardSource = new CardSourceImplDelite(getActivity().getApplicationContext(),nameDayTrainRW,nameDayTrainRW); adapter = new itemAdapterDelite(cardSource); }
Wie erhalte ich Daten in onviewcreated namedaytrain? (Es wird also an den Recyclerview-Adapter weitergeleitet)
Verwenden Sie die AndroidX-Ansichtsmodellbibliothek, um mit Ihrer Aktivität und Ihren Fragmenten zu kommunizieren. Es ist ganz einfach ✍️
Hier: AndroidX Jetpack ViewModel
Das obige ist der detaillierte Inhalt vonWie erhalte ich die Daten im recycleView-Fragment onViewCreated aus einem anderen Fragment?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!