0
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?

Alexei
  • 14,350
  • 37
  • 121
  • 240

1 Answers1

1

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();
}
MidasLefko
  • 4,499
  • 1
  • 31
  • 44