actualiser un fragment de l'activité de son parent
J'ai presque le même problème exactement comme cette question ici: Android, Comment redémarrer/actualiser un fragment de FragmentActivty?
Je vais essayer d'appeler la méthode d'un ListFragment
du parent FragmentActivity
.
Cependant, je suis en utilisant le modèle de Balayage + Fixe Onglets généré par eclipse. J'ai essayé d'appeler getSupportFragmentManager().findFragmentById(R.id.myfragment)
mais la valeur de retour est toujours null. Je suppose que ce pourrait être un problème parce que je n'ai pas de définir myfragment
n'importe où dans mon application. Mais je ne suis pas sûr où la définir comme tous les fragments sont créés dynamiquement.
Pour ceux qui ne sont pas familiers avec le mouvement de Balayage + Fixe Onglets modèle généré par le SDK Android dans Eclipse, les fragments sont créés par des raisons impérieuses le FragmentPagerAdapter
getItem
fonction, qui renvoie une nouvelle instance de mon fragment.
Toute aide serait appréciée.
Code correspondant:
Comment je peux configurer ma carte:
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
//Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.activity_comment);
mViewPager.setAdapter(mSectionsPagerAdapter);
Substitution de la carte getItem fonction:
@Override
public Fragment getItem(int position) {
//getItem is called to instantiate the fragment for the given page.
//Return a DummySectionFragment (defined as a static inner class
//below) with the page number as its lone argument.
switch(position) {
case 0:
return CommentsFragment.newInstance();
case 1:
default:
return LikesFragment.newInstance();
}
}
La newInstance() les fonctions de simplement retourner une instance d'eux-mêmes, depuis les classes de mon fragment sont statiques.
Mise à jour de la question avec le code pertinent.
OriginalL'auteur l3utterfly | 2013-10-30
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver votre fragment par la Balise, mais bien sûr, vous devez donner à cette étiquette lors de l'ajout du fragment.
D'abord ajouter votre fragment avec un tag:
Puis sur l'Activité du site:
Il ne fonctionne pas. Erreur s'est produite: "ne Pouvez pas modifier la balise de fragment". Veuillez voir mes question: stackoverflow.com/questions/24833912/...
utilisation getSupportFragmentManager() si votre application de soutien v4.
Est-ce le seul moyen? Pourquoi ne pas enregistrer le fragment d'instance dans un attribut de la classe d'activité?
OriginalL'auteur Kristopher
Vous avez à faire cela :
ne fonctionne pas pour moi
OriginalL'auteur Harshit Rathi
Vos fragments sont gérés par la carte. Par conséquent, vous devez également appel à l'adaptateur pour actualiser vos fragments. Ces étapes sont nécessaires:
Remplacer getItemPosition de votre Carte
Une fois que vous l'avez fait appel
dans votre Activité. À partir du fragment de l'objet lui-même, vous pouvez utiliser une fonction de rappel pour l'informer de l'Activité de la nécessité d'actualiser.
Ce sera fraîchement remplir le viewPager avec de nouvelles instances de vos fragments qui correspond au redémarrage /actualisation du fragment.
J'espère que ça aide et c'est ce que vous cherchez.
OriginalL'auteur Nino Handler
getFragmentManager().beginTransaction().détacher(ce).attacher(ce).commit();
OriginalL'auteur Juliet Wanjohi