6
votes

L'écoute du bouton d'activité clique sur l'intérieur d'un fragment

Je viens de commencer à apprendre des fragments et j'ai une activité qui compte 1000 lignes de code que j'ai converties en fragment.

Je me demande s'il y a un moyen facile de permettre à mon fragment d'écouter des boutons qui résident dans le XML de son activité parent. J'ai essayé de simplement ajouter un auditeur régulier dans le fragment 'CODE> ONCREAVEVIEW avec l'ID des boutons, mais il est (attendu) me donnant une exception de pointeur Null.

Je connais le OnseearchClickListener Méthode de le faire, mais cela prendrait probablement beaucoup de nombreuses heures de refactorisation manuelle pour atteindre ce dont j'ai besoin (du moins de ce que je peux dire à propos de son utilisation, je «D Soyez heureux de me tromper), alors je me demandais si quelqu'un connaît une autre méthode pour que cela soit fait de manière non répétitive.


2 commentaires

Implémenter une interface pour la communication entre activité et fragments. Reportez-vous: SimpleDeveloper.com/...


Vous pouvez y parvenir en utilisant une interface. Faites de votre fragment Implémentez l'interface et remplacez la méthode d'interface pour effectuer la fonction souhaitée.


4 Réponses :


6
votes

Vous pouvez essayer d'obtenir une référence de la vue d'activité de cette façon: xxx

puis ajouter l'écoute: xxx


2 commentaires

C'est la bonne réponse à ma question, bien que j'ai appris sur d'autres formes de communication d'activité-fragment (interfaces) des autres réponses (merci à tous).


Comment atteindre cela sur Xamarin?



3
votes

Définir une interface appelée comme cliclisteneronactivity contient une méthode nommée onclickinactivité (vue v) et mettre en œuvre cela en fragment. Lorsque vous cliquez sur le bouton de l'activité, appelez cette méthode de l'interface.

Vous pouvez voir cette exemple pour voir comment implémenter une interface.


0 commentaires

2
votes

Malgré la réponse d'Emre Akturk n'est pas fausse, mais ce n'est pas la meilleure pratique, vous pouvez donc joindre votre fragment à une autre activité et après cela, que Activité peut ne pas avoir ce Voir . Ainsi, le meilleur moyen utilise une interface . Créez votre fragment implémente votre interface souhaitée puis dans onclicklistener de votre bouton , appelez l'interface de ce fragment .


0 commentaires

5
votes

en fragment fait comme ça ..

public class Myfragment extends Activity implements MyFragment.Callback{

    public void onButtonClicked(View btn) {
        // The radiobutton in MyFragment has been clicked
        myButton.setEnabled(true); // or something like this.
    }
}


0 commentaires