Problem: Ich verwende EventBus
von greenrobot, um einige Ereignisse zu übergeben. Es funktioniert für mich leider für das Szenario der Weitergabe von Daten zwischen zwei fragments
es nicht funktioniert. Das Ereignis wird also nicht ausgelöst.EventBus-Ereignis zwischen zwei nicht gefeuerten Fragmenten
Frage: Verkenne ich das Konzept? Oder gibt es einen Fehler in meinem Code?
Hinweis: Beide Fragmente existieren zum Zeitpunkt des Sendens des Ereignisses. Eine fragment
ist die übergeordnete und die andere das Kind, um Details anzuzeigen.
fragment:
public class DetailFragment extends Fragment {
(...)
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventBus.getDefault().post(new IntentRefresh());
}
});
(...)
}
EventBus Klasse:
public class IntentRefresh {
public IntentRefresh(){}
public void refreshParent() {
}
}
Elternfragment:
public class ParentFragment extends Fragment {
(...)
@Override
public void onPause() {
super.onPause();
EventBus.getDefault().unregister(this);
}
@Override
public void onResume() {
super.onResume();
EventBus.getDefault().register(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void updateList(IntentRefresh intentRefresh) {
Toast.makeText(getActivity(), "LUEEEEPT", Toast.LENGTH_SHORT).show();
}
(...)
}
Sind beide Fragmente zur gleichen Zeit wieder aufgenommen? Stellen Sie sicher, dass das übergeordnete Fragment nicht pausiert ist, um es vom Bus abzubestellen. –