Les meilleures pratiques pour la mise à jour des arguments d'un fragment?

Je sais à propos de la "newInstance"-Modèle (Les meilleures pratiques pour l'instanciation d'un nouveau Fragment Android). Mais comment puis-je mettre à jour ces arguments d'un fragment par exemple, si un autre fragment de modifications de données?

Je sais à propos de rappel des méthodes entre les Fragments/Activitys, mais ces rappels ne mettre à jour les arguments?!

Par exemple: lors de la création de la fragment que je passe une URI de la avec le bundle.
Ensuite, un autre fragment de changements cette URI via changeUri(Uri Uri) méthode de rappel sur le premier fragment.
Si ensuite le fragment soit recréé (par exemple en raison de la rotation de l'écran), il utilise le premier de l'URI de la arguments bundle au lieu de la dernière mise à jour uri, correct?

Quelle est la meilleure pratique pour résoudre ce problème? Dois-je enregistrer manuellement dans le savedInstanceState et sur l'utilisation de décider d'utiliser le instanceState ou des arguments-bundle?

Je suis à la recherche d'un moyen standard de manipulation les arguments de mes fragments, donc je pense que je vais avec une telle approche (pseudo-code):

private Uri arg1;

public static Fragment newInstance(Uri arg1) {
  create bundle
  create fragment instance
  set bundle to fragment
  return fragment
}

private void onCreate(Bundle savedInstance) {
  if(savedInstance != null) {
    arg1 = savedInstance.uri
  }
}

private Uri getUri() {
  if(arg1 == null) {
    arg1 = getArguments.uri
  }
  if(arg1 == null) {
    arg1 = defaultValue
  }
}

J'ai donc simplement d'une méthode unifiée pour accéder à mon argument. Et ne pas avoir à utiliser le si-sinon-tracas, à chaque fois que j'ai besoin de cet argument.

Qu'en pensez-vous?

  • Oui. Combien de code sont en train de parler? Un oveeriden méthode -onSaveInstanceState- avec 1 ligne supplémentaire et un if-else dans onCreate?
  • l'échec défaut de conception des fragments de ne pas dépendre des autres fragments
  • Ce sujet de "réécrire" les arguments d'une méthode publique de ce fragment?
InformationsquelleAutor Maniac | 2013-08-15