Wie man eine Variable von Activity zu Fragment übergibt und sie zurückgibt?

Ich mache zurzeit eine Android-App, und ich möchte ein Datum zwischen Aktivität und Fragment übergeben. Meine Aktivität hat eine Schaltfläche, die das Fragment öffnet: DatePickerFragment.

Auf meiner Tätigkeit zeige ich ein Datum, das ich mit dem Fragment ändern möchte. Also möchte ich das Datum an den Datepicker weitergeben und es an die Aktivität zurücksenden.

  • Was ist eine Adapterklasse?
  • Wie kann ich eine Android-Anwendung beenden?
  • AutoStart-Anwendung funktioniert nicht ordnungsgemäß
  • Laden Sie apk Datei von S3 mit DownloadManager herunter
  • Holen Sie sich Spannbare String von EditText
  • Aufruf von setDisplayHomeAsUpEnabled für Fragmente in ActionBarCompat
  • Ich habe viele Lösungen ausprobiert, aber keiner arbeitet. Der einfache Weg wäre ein Argument, aber das kann man nicht mit Fragmenten machen.

  • ActionBarSherlock ForceOverflow Ressource nicht gefunden
  • Raumpersistenz @Relation arbeitet in Java aber nicht in Kolin
  • OkHttpClient schließen Verbindung
  • Nahtloses verschachteltes Scrollen (Android)
  • Zip / komprimieren einen Ordner voller Dateien auf Android
  • Wie bekomme ich TextView Top Margin?
  • 3 Solutions collect form web for “Wie man eine Variable von Activity zu Fragment übergibt und sie zurückgibt?”

    Um Informationen an ein Fragment weiterzugeben, legen Sie Array, wenn Sie es erstellen, und Sie können dieses Argument später auf der Methode onCreate oder onCreateView Ihres Fragments abrufen.

    Auf der newInstance-Funktion deines Fragments fügst du die Argumente hinzu, die du dir senden möchtest:

    /** * Create a new instance of DetailsFragment, initialized to * show the text at 'index'. */ public static DetailsFragment newInstance(int index) { DetailsFragment f = new DetailsFragment(); // Supply index input as an argument. Bundle args = new Bundle(); args.putInt("index", index); f.setArguments(args); return f; } 

    Dann können Sie in dem Fragment auf der Methode onCreate oder onCreateView die Argumente wie folgt abrufen:

     Bundle args = getArguments(); int index = args.getInt("index", 0); 

    Wenn du jetzt von deinem Fragment mit deiner Aktivität (Senden oder nicht Daten) kommunizieren möchtest , musst du Schnittstellen verwenden. Die Art, wie Sie dies tun können, wird in der Dokumentation Tutorial der Kommunikation zwischen Fragmenten wirklich gut erklärt. Weil alle Fragmente zwischeneinander durch die Aktivität kommunizieren, können Sie in diesem Tutorial sehen, wie Sie Daten aus dem eigentlichen Fragment an seinen Aktivitätscontainer senden können, um diese Daten über die Aktivität zu nutzen oder sie an ein anderes Fragment zu senden, das Ihre Aktivität enthält.

    Dokumentation Tutorial:

    http://developer.android.com/training/basics/fragments/communicating.html

    Senden von Daten aus Activity zu einem Fragment

    Aktivität:

     Bundle bundle = new Bundle(); String myMessage = "Stackoverflow is cool!"; bundle.putString("message", myMessage ); FragmentClass fragInfo = new FragmentClass(); fragInfo.setArguments(bundle); transaction.replace(R.id.fragment_single, fragInfo); transaction.commit(); 

    Fragment:

    Lesen des Wertes im Fragment

     @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String myValue = this.getArguments().getString("message"); ... ... ... } 

    Aber wenn du Werte von Fragment zu Aktivität senden willst, lest die Antwort von jpardogo, musst du Schnittstellen benötigen, mehr Info: Kommunizieren mit anderen Fragmenten

    Verwenden Sie die Bibliothek EventBus, um das Ereignis zu übergeben, das Ihre Variable hin und her enthalten könnte. Es ist eine gute Lösung, weil es Ihre Aktivitäten und Fragmente locker gekoppelt hält

    https://github.com/greenrobot/EventBus

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.