Bu dersimizde greenrobot eventbus kütüphanesini fragmentten activity’e ve de activity’den fragmente veri göndermek için bazı örnek veririm
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*@Override
public void sendData(int position) {
}*/
@Subscribe
public void onPositionEvent(PositionEvent event){
int position=event.getPosition();
FragmentAciklama fragmentAciklama = (FragmentAciklama) getFragmentManager().findFragmentById(R.id.fragmentAciklamaLand);
//landscape modda burası çalışır
if (fragmentAciklama != null && fragmentAciklama.isVisible()) {
fragmentAciklama.konuAciklamasi(position);
}
//portrait modda burası çalışır
else {
Intent i = new Intent(this, DigerActivity.class);
startActivity(i);
}
}
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
}
Anlaşılacağı üzere tıklanılan öğenin position değeri activity ve farklı bir fragmente gönderiliyor. Bu değeri eventbus ile gönderirsek interface ve bundle kullanmamıza gerek kalmaz ve bileşenleri birbirlerine bağlamadan, zorunlu kılmadan istediğimizi yapabiliriz.