Otton I ont une activité avec un Viewpager. mon viewpager a plusieurs fragments. Je veux envoyer un événement Otto à un fragment lorsqu'il est sélectionné, donc je mets en œuvre ViewPager.OnPageChangeListener
fragments de viewpager ne recevant pas les événements de l'activité
@Override
public void onPageSelected(int position) {
currentPosition = position;
switch (position){
case 0:
EventBus.getInstance().post(new TypeEvent());
break;
case 1:
EventBus.getInstance().post(new InternalEvent());
break;
}
}
intérieur de mon premier fragment
@Override
public void onStart() {
super.onStart();
EventBus.getInstance().register(this);
}
@Override
public void onStop(){
super.onStop();
EventBus.getInstance().unregister(this);
}
@Subscribe
public void init(TypeEvent event){
Logger.d("type event received");
//do something.......
}
Mon bus d'événements classe
public class EventBus extends Bus {
private static EventBus eventBus;
public static EventBus getInstance(){
if(eventBus == null){
eventBus = new EventBus();
}
return eventBus;
}
}
Le problème est mes fragments ne reçoivent pas d'événements. quel pourrait être le problème?
événement est le feu lorsque vous appelez méthode post? – sasikumar
@sasikumar J'ai appris à connaître la cause du problème. voir ma réponse ci-dessous –