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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-19 12:58:03320parcourir

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();
    }

    ...
}

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;
}

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() {
        // ...
    }
}

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);

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!

Déclaration:
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