2015-11-29 1 views
0

J'étend l'adaptateur BaseExpandableListAdapter pour remplir les données dans ExpandableListView. J'ai essayé d'implémenter un écouteur personnalisé avec lequel je voudrais notifier cet adaptateur de ma classe parente.Écouteur personnalisé dans l'adaptateur ExpandableListView

J'ai mis en écoute comme ceci:

public interface MyListener { 
    public void onNext(); 
} 

Je me sers de cette en classe mère comme ceci:

ExpandableListView lv = new ExpandableListView(this.getContext()); 
MyAdapter adapter = new MyAdapter(); 
lv.setAdapter(adapter); 
MyListener adapterListener = (MyListener) lv.getExpandableListAdapter(); 

adapterListener.onNext(); 

et je me sers de ce à l'intérieur de l'adaptateur étendu comme celui-ci:

public class MyAdapter extends BaseExpandableListAdapter implements MyListener { 


    @Override 
    public void onNext() { 

    } 
} 

Mais cela n'attrape pas l'événement dans ma classe d'adaptateur personnalisé. Qu'est ce que je fais mal?

Répondre

0

Si vous souhaitez notifier l'adaptateur puis dans votre classe d'adaptateur dans votre constructeur

MyListener adapterListener; 
MyAdapter adapter = new MyAdapter(MyListener adapterListener) 
{  
this.adapterListener = adapterListener  
} 

et appeler la méthode dans l'adaptateur où vous voulez gérer l'événement adapterListener.onNext();

puis dans votre classe Activity ou fragment, implémentez simplement l'interface.