Maison > Java > javaDidacticiel > le corps du texte

Comment communiquer entre un fragment et son adaptateur à l'aide d'une interface ?

Mary-Kate Olsen
Libérer: 2024-11-19 12:58:03
original
319 Les gens l'ont consulté

How to Communicate Between a Fragment and its Adapter Using an Interface?

Implémentation d'une interface de communication entre le fragment et l'adaptateur

Dans le scénario décrit, vous disposez d'un fragment, MyListFragment, contenant un ListView et un CursorAdapter personnalisé. Votre objectif est de notifier MyListFragment lorsqu'un bouton est enfoncé dans une ligne spécifique de la liste. Pour réaliser cette communication, vous pouvez utiliser une approche basée sur l'interface.

Dans MyListAdapter, définissez une interface, AdapterInterface, avec une méthode de rappel, buttonPressed (), à appeler lors d'un clic sur le bouton :

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    ...
}
Copier après la connexion

Ensuite, modifiez MyListAdapter pour inclure une variable d'instance de type AdapterInterface et un constructeur qui accepte une instance de cette interface comme argument :

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 MyListFragment, implémentez AdapterInterface et remplacez buttonPressed(), qui être invoqué à partir du onClickListener de AdapterView dans l'adaptateur :

public MyListFragment extends Fragment implements AdapterInterface {

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

Enfin, instanciez MyListAdapter dans MyListFragment et transmettez une instance de MyListFragment lui-même comme argument au constructeur de l'adaptateur :

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

En faisant cela, MyListAdapter peut invoquer le buttonPressed( ) méthode de MyListFragment chaque fois que vous appuyez sur le bouton de la ligne de la liste. Cela permet une communication transparente entre l'adaptateur et le fragment, vous permettant de prendre les actions nécessaires en cliquant sur le bouton.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal