Come passare una variabile da Attività a frammento e passare indietro?

Sto attualmente facendo un'applicazione android, e voglio passare una data tra attività e frammento. La mia attività ha un button che apre il frammento: DatePickerFragment.

Nella mia attività mostro una data, che voglio modificare con il frammento. Quindi voglio passare la data al data-picker e mandarla all'attività.

  • C'è un modo per ignorare INSTALL_FAILED_VERSION_DOWNGRADE sull'installazione dell'applicazione con il debug Bridge di Android?
  • Il flag di Vector Drawables non funziona nella libreria di supporto 24+
  • Android triggersre / distriggersre WiFi HotSpot a livello di programmazione
  • Android Listview rallenta la velocità di scorrimento
  • Arraylist in object parcelle
  • Ottieni la risoluzione dello schermo reale su Ice Cream Sandwich
  • Ho provato molte soluzioni, ma nessuno sta funzionando. Il modo più semplice sarebbe passare un argomento, ma questo non può essere fatto con frammenti.

  • Modifica del colore della tinta di Android EditText a livello di programmazione
  • ascoltatore onClick ad una image ListView - Android
  • Come passare l'object JSON a una nuova attività
  • Qual è la migliore pratica per condividere le classi tra un'applicazione Wear e Android?
  • email: Quali sono i valori di return Intent.ACTION_SEND?
  • Android: Come impostare l'evento onClick per il button nella voce Elenco di ListView
  • 3 Solutions collect form web for “Come passare una variabile da Attività a frammento e passare indietro?”

    Per passare informazioni a un frammento , si impostaArguments quando lo crea e potrai recuperare questo argomento più avanti nel metodo onCreate o onCreateView del frammento.

    Nella function newInstance del tuo frammento si aggiungono gli argomenti che desideri submit ad esso:

    /** * 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; } 

    Allora all'interno del frammento del metodo onCreate o onCreateView è ansible recuperare gli argomenti come questo:

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

    Se vuoi ora comunicare dal tuo frammento con la tua attività (invio o non dati) , devi utilizzare le interfacce. Il modo in cui puoi fare questo è spiegato veramente bene nella documentazione di tutorial della comunicazione tra frammenti. Poiché tutti i frammenti comunicano tra loro attraverso l'attività, in questo tutorial è ansible vedere come è ansible submit dati dal frammento effettivo al contenitore attività per utilizzare questi dati sull'attività o inviarlo ad un altro frammento che contiene la tua attività.

    Tutorial per la documentazione:

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

    Invio di dati da Activity a un Fragment

    Attività:

     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(); 

    Frammento:

    Leggere il valore in frammento

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

    Ma se si desidera submit valori da Fragment to Activity, leggere la risposta di jpardogo, è necessario disporre di interfacce, maggiori informazioni: Comunicare con altri frammenti

    Utilizzare la libreria EventBus per passare evento che potrebbe contenere la variabile avanti e indietro. È una buona soluzione perché mantiene le tue attività e frammenti sciolti

    https://github.com/greenrobot/EventBus

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.