Я создал модуль приложения для dagger2 как
@Module
public class VachakaModule {
private final Application mApplication;
private final String APPLICATION_KEY = "Vachaka";
private Bus bus;
public VachakaModule(Application mApplication) {
this.mApplication = mApplication;
this.bus = new Bus();
}
@Provides
Application applicationContext() {
return mApplication;
}
@Provides
SharedPreferences sharedPreferences() {
return mApplication.getSharedPreferences(APPLICATION_KEY, Context.MODE_PRIVATE);
}
@Provides
Bus getBus() {
return bus;
}
}
и класс приложения создается как
@Override
public void onCreate() {
super.onCreate();
vachaka = this;
vachakaComponent = DaggerVachakaComponent.builder()
.vachakaModule(new VachakaModule(this))
.build();
}
Теперь я хочу, чтобы объект шины был доступен в одном из моих классов Viewholder
public static class SimpleNewsViewHolder extends MyViewHolder {
@Inject
Bus bus;
@BindView(R.id.buttonMore)
Button buttonMore;
public SimpleNewsViewHolder(View itemView) {
super(itemView);
}
@Override
void bind(NewsModel.News item) {
buttonMore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bus.post(new LoadNewsEvent(news_id));
}
});
}
}
Я получаю сообщение об ошибке Попытка вызвать виртуальный метод void com.squareup.otto.Bus.post (java.lang.Object) для нулевой ссылки на объект в строке bus.post.
Как правильно внедрить этот объект шины в класс видоискателя?
Спасибо за чтение