2017-09-12 5 views
0

J'utilise ScreenSlidePagerAdapter, ViewPager et PagerAdapter j'ai trois fragments et chaque fragment contient trois à quatre editText champs. Fragment 1: personalInfo Fragment 2: contactInfo Fragment 3: workInfo WorkInfo contient également Clear Button pour effacer toutes les données editText forment les trois Fragmnets.Android: Effacer les données EditText de multiples Fragment en un clic

Lorsque l'utilisateur saisit la valeur personalInfo puis contactInfo et enfin, passe au WorkInfo. Maintenant, au clic du bouton Effacer, je veux effacer toutes les données editText. J'ai essayé findViewById() mais je n'ai pas pu obtenir la référence de editText de Fragment 1 et Fragment 2.

Si quelqu'un a une solution, alors aidez-moi.

Répondre

0

Faites quelque chose comme ceci: Faites une variable booléenne dans votre classe initialisée à false. Quand quelqu'un clique sur clear, change la valeur de ce booléen à true. Et dans onstart(), vérifiez cette variable avant d'afficher les données dans edittext.

+0

Cela ne fonctionnera pas avec le fragment car lorsque nous passons au second fragment, alors onPause() du premier fragment ne l'appelle pas. Il appelle quand nous passons au 3e fragment. En bref, il y a trois fragments dans la mémoire. L'un est actuel, le second est Pervious et le troisième est Next. –

+0

Oui, vous avez raison. Vous pouvez essayer de créer un tableau de vue, puis effacer le edittext de fragrment 2 de l'écouteur onclick. Je pense que vous pouvez accéder à edittext du fragment 2 du fragment 3 en utilisant la vue du fragment 2. – Lcukerd

0

Utilisez une interface pour communiquer entre les fragments. Vous pouvez lire plus à ce sujet à partir des documents de développeur Android.

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

En résumé, à partir de votre Fragment 3 vous devez appeler une méthode à partir de votre interface qui doit être implemetend par votre activité. Ensuite, votre activité doit notifier Fragment 1 et Fragment 2 pour mettre à jour leurs vues.

J'espère que cela vous aidera.

+0

Cette technique ne fonctionne que lorsque les fragments sont en mémoire mais quand nous avons 5 fragments alors seulement 2 à 3 en mémoire. D'autres ne sont pas affectés par cette technique –

+0

Le problème est que vous n'avez pas la référence aux autres fragments? Essayez d'utiliser un [EventBus] (https://github.com/greenrobot/EventBus) Avec cela, vous pouvez déclencher un événement à partir d'un fragment et écouter cet événement à partir des autres fragments. – mr90