J'essaie d'appeler le AsyncTask à partir d'un autre fragment plutôt que de la classe où j'ai déclaré la tâche AsyncTask. J'ai utilisé la disposition de l'onglet personnalisé avec viewpager. La disposition des onglets contient quatre onglets. Je souhaite appeler un service Web lorsqu'un onglet particulier est sélectionné. Alors que j'ai écrit le OnTabSelected() dans le fragment principal dans lequel j'ai utilisé tablayout. Mon asyncTask est dans le deuxième onglet. Je veux appeler le webservice lorsque le second onglet est sélectionné dans la méthode OnTabSelected(). Je suis nouveau dans le développement Android. Alors, comment faire cela?Comment appeler AsyncTask à partir d'un autre fragment en utilisant Tablayout avec viewpager?
0
A
Répondre
0
événement utilisation viewpager's addOnPageChangeListener
comme ceci:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if(position == 1){
//call your webservice here
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
note commence par 0 cette position de page pour votre deuxième position onglet est 1.
modifier: comment obtenir instance du fragment courant
Fragment f = getActivity().getFragmentManager().findFragmentById(R.id.fragment_container);
if (f instanceof SecondFragmentClass) {
f.doSomething();
}
note: vous pouvez utiliser findFragmentByTag() à la place de findFragmentById, si vous avez fourni l'étiquette
mise à jour:
if(position == 1){
Fragment page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":" + ViewPager.getCurrentItem());
// based on the current position you can then cast the page to the correct
// class and call the method:
if (page != null) {
((SecondFragmentClass)page).updateList("new item");
}
return true;
}
Cocher cette ans pour une meilleure understandig https://stackoverflow.com/a/18611036/5895830
Comment puis-je prendre l'exemple du fragment courant signifie second fragment pour exécuter la tâche? – vaibhav
vérifier ma réponse mise à jour –