Maison > Java > javaDidacticiel > le corps du texte

Comment communiquer entre un fragment et son adaptateur à l'aide d'un clic sur un bouton piloté par un événement ?

DDD
Libérer: 2024-11-19 10:09:02
original
538 Les gens l'ont consulté

How to Communicate Between a Fragment and its Adapter using an Event-Driven Button Click?

Interfaçage d'un fragment et d'un adaptateur via des clics de boutons déclenchés par des événements

Pour communiquer des événements entre un fragment et son adaptateur associé, on peut implémenter une interface dans la classe Adaptateur. Dans ce scénario, un fragment nommé MyListFragment contient un ListView qui utilise un CursorAdapter personnalisé. Lors d'un clic sur le bouton dans la ligne de la liste, une notification doit être envoyée au Fragment.

La solution consiste à créer une interface au sein de la classe Adapter :

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        void buttonPressed();
    }

    ...
}
Copier après la connexion

Au sein de la classe Fragment ( MyListFragment), implémentez l'AdapterInterface :

public class MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // Some action
    }
}
Copier après la connexion

Pour lier l'Adaptateur et le Fragment, modifiez l'Adaptateur class :

public class MyListAdapter extends CursorAdapter {

    private AdapterInterface buttonListener;

    public MyListAdapter(Context context, Cursor c, int flags, AdapterInterface buttonListener) {
        super(context, c, flags);
        this.buttonListener = buttonListener;
    }

    ...
}
Copier après la connexion

Dans la méthode bindView de l'adaptateur, définissez le comportement du clic sur le bouton :

@Override
public void bindView(View view, Context context, Cursor cursor) {
    ...

    holder.button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            buttonListener.buttonPressed();
        }
    });
}
Copier après la connexion

Lors de la création de l'adaptateur, transmettez le fragment comme argument :

MyListAdapter adapter = new MyListAdapter(getActivity(), myCursor, myFlags, this);
Copier après la connexion

Ce mécanisme garantit que lorsque le bouton est cliqué, le Fragment reçoit la notification via l'interface implémentée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal