Как ввести объект от шины в кинжал 2 - PullRequest
0 голосов
/ 06 сентября 2018

Я создал модуль приложения для 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.

Как правильно внедрить этот объект шины в класс видоискателя?

Спасибо за чтение

...