Hallo, meine Frage ist dies. Ich habe ein Fragment in einem View Pager, das eine Schaltfläche hat, die, wenn ein Registerkartenblatt geöffnet wird, mit einem anderen Fragment geöffnet wird. Das untere Blatt enthält eine Liste von Objekten, und wenn der Benutzer ein Objekt ausgewählt hat, das ich an das erste Fragment übergeben möchte, das ich bereits erwähnt habe, besteht das Problem darin, dass dieses Fragment angehalten wurde. Wie kann ich Daten von einem Fragment zu einem anderen senden, das pausiert ist?Fragment und Fragment Kommunikation
Antwort
Es gibt mehrere Möglichkeiten, Daten zwischen Fragmenten zu übergeben. Wenige sind:
- Sie können Getter/setter der beteiligten Fragmente Klasse
- Sie ihre Mutter Aktivität unter Verwendung von Schnittstellen zum Aktualisieren/Übergabe von Daten zwischen den Fragmenten oder Aktivität können Sie verwenden können
- Daten zwischen Fragment teilen
- Sie können Observer Design Muster verwenden zu teilen/pass Daten zwischen Fragmenten oder Aktivitäten
- Sie auch Bundle verwenden können, Daten zu übergeben
Es hängt von Ihnen ab, den besten Ansatz zu wählen, der Ihren Bedürfnissen entspricht.
Funktioniert dieser Ansatz auch wenn das Fragment, das ich die Informationen weitergeben möchte, in onPause() ist? Da ich das Fragment nicht wieder erstellen möchte, – Andrea
@andrea, ja, wähle den besten Ansatz, der zu dir passt. – Geek
Ich habe die Bundle-Option ausprobiert, arbeite aber nicht, da das Fragment, das ich weitergeben möchte, bereits erstellt wurde und getArguments() nichts mehr tut onResume() – Andrea
Verwendung dieses
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
System.out.print(position + "to" + tab_position);
Fragment fragment = null;
switch (position) {
case 0:
Bundle bundle = new Bundle();
bundle.putString("message", "getdata");
bundle.putStringArrayList("name", running_veicle);
bundle.putStringArrayList("loc", running_loc);
bundle.putStringArrayList("running_device_id", running_device_id);
fragment = new Vehicle_Status_fragment_running_info();
fragment.setArguments(bundle);
break;
case 1:
Bundle bundle1 = new Bundle();
bundle1.putString("message", "getdata");
bundle1.putStringArrayList("name", idle_name);
bundle1.putStringArrayList("loc", idle_loc);
bundle1.putStringArrayList("idle_device_id", idle_device_id);
fragment = new Vehicle_Status_fragment_Idle_info();
fragment.setArguments(bundle1);
break;
case 2:
Bundle bundle2 = new Bundle();
bundle2.putString("message", "getdata");
bundle2.putStringArrayList("name", stop_name);
bundle2.putStringArrayList("loc", stop_loc);
bundle2.putStringArrayList("stop_device_id", stop_device_id);
fragment = new Vehicle_Status_fragment_Stop_info();
fragment.setArguments(bundle2);
break;
case 3:
Bundle bundle3 = new Bundle();
bundle3.putString("message", "getdata");
bundle3.putStringArrayList("name", Innactive_name);
bundle3.putStringArrayList("loc", Innactive_loc);
bundle3.putStringArrayList("innactive_device_id", Innactive_device_id);
fragment = new Vehicle_Status_fragment_Inactive_info();
fragment.setArguments(bundle3);
break;
}
return fragment;
}
@Override
public int getCount() {
// Show 4 total pages.
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return getString(R.string.tab_Running).toUpperCase(l);
case 1:
return getString(R.string.tab_Idle).toUpperCase(l);
case 2:
return getString(R.string.tab_Stop).toUpperCase(l);
case 3:
return getString(R.string.tab_Innactive).toUpperCase(l);
}
return null;
}
}
erhalten Daten
View view = inflater.inflate(R.layout.fragment_tab_veicle_status_list, container, false);
listobj = (ListView) view.findViewById(R.id.gridview);
String myValue = this.getArguments().getString("message");
Funktioniert dieser Ansatz auch wenn das Fragment, das ich Willst du die Informationen weitergeben in onPause()? Weil ich das Fragment nicht noch einmal erstellen möchte – Andrea
- 1. Fragment Kommunikation - Fragment zu Fragment
- 2. Fragment-Fragment Kommunikation in Android
- 3. Kind Fragment zu Parent Fragment Kommunikation
- 4. Fragment zu Aktivität zu Fragment Kommunikation
- 5. Kommunikation mit Fragment NullPointerException
- 6. Fragment Kommunikation mit Hauptaktivität
- 7. Kommunikation zwischen Fragment in Navigationsschublade
- 8. Kommunikation zwischen Fragment und anderer Aktivität
- 9. Kommunikation zwischen Aktivität und Fragment in Kotlin
- 10. Fragment to Fragment Kommunikation - Warum ist die Schnittstelle wirklich notwendig?
- 11. Fragment zu fragment Kommunikation funktioniert nicht machen java.lang.nullpointerexception
- 12. Kommunikation von Aktivität zu Fragment mit ViewPager
- 13. Fragment zu fragmentieren Kommunikation innerhalb eines NavigationDrawer
- 14. Kommunikation von Aktivität zu multiplem Fragment
- 15. Kommunikation zwischen Fragment Innerhalb von Viewpager und Fragment, die den Viewpager haben
- 16. Fragment android: Fragment kann nicht Fragment instanziiert
- 17. Call-Fragment von Fragment
- 18. Refresh-Fragment in Fragment
- 19. kommunizieren zwischen Ansicht Pager-Fragment und Dialogfeld Fragment
- 20. Android: Fragment zu Fragment Lifecycle
- 21. Fragment Zurück Drücken, Zurückladen Fragment
- 22. Kommunikation zwischen 2 Fragmenten in einem Viewpager - Aktualisierung RecyclerView in Fragment B aus Fragment A
- 23. Aktivität und Fragment Interaktion
- 24. Fragment und Menüanzeige
- 25. getLayoutInflator() und Fragment
- 26. Fragment OnSavedInstanceSate und Realm
- 27. HtmlUnit und Fragment Identitäten
- 28. Schnittstelle zwischen ListAdapter und Fragment
- 29. Gibt es einen Unterschied zwischen ui: Fragment und s: Fragment?
- 30. PopBackStack vorherigen letzten Fragment und überprüfen, welches Fragment es ist
prüfen Fragment Lebenszyklus. – Piyush
Was ist bis jetzt müde? – Wizard
@Andrea Fragment wird angehalten, wenn sich Ihre Aktivität im Pausenzustand befindet. Sie können Schnittstelle für die Kommunikation zwischen dem Fragment –