compile 'org.greenrobot:eventbus:3.0.0'
Here my frament subscriber:
public class FragmentSort extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
EventBus.getDefault().register(this);
View rootView = inflater.inflate(R.layout.fragment, container, false);
return rootView;
}
@Subscribe
public void onChangeFilter(Integer categoryId) {
// NOT CALL
}
Here my main frament that send message:
public class MainFragment extends Fragment {
private void searchViewPostAction(Integer categoryId) {
searchView.clearFocus();
EventBus.getDefault().post(new CategoryFilterEvent(categoryId));
}
}
Here my POJO:
public class CategoryFilterEvent {
private Integer categoryId;
public CategoryFilterEvent(Integer categoryId) {
this.categoryId = categoryId;
}
}
Method MainFragment.searchViewPostAction()
is call but message not receive.
Method FragmentSort.onChangeFilter()
is NOT call.
Why?
Add a getter method to CategoryFilterEvent
public int getCategoryId() {
return categoryId;
}
And change:
@Subscribe
public void onChangeFilter(Integer categoryId) {
// NOT CALL
}
to:
@Subscribe
public void onChangeFilter(CategoryFilterEvent event) {
// THIS WILL BE CALLED
int categoryId = event.getCategoryId();
}