EventBus OnEvent() не вызывается

Привет, я использую шину событий для передачи данных из одного фрагмента в другой фрагмент.

Из фрагмента-1 я делаю, как показано ниже

@Override
public void onPause() {
    bsValues = new BoreShaftValues(strtext, strtextshaft);
    bus.post(bsValues);
    super.onPause();
}

В Фрагменте-2 я зарегистрировал автобус в OnActivitycreated

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    bus.register(this);
}

Затем я поместил метод OnEvent() во фрагмент-2

public void onEvent(BoreShaftValues event){
    boregradeselect.setText(event.getBoreData());
    shaftgradeselect.setText(event.getShaftData());
}

Ниже мой курс BoreshaftVales

public class BoreShaftValues {
    private String boredata;
    private String shaftdata;

    public BoreShaftValues(String boredata, String shaftdata){          
        this.boredata = boredata;
        this.shaftdata = shaftdata;
    }

    public String getBoreData(){
        return boredata;
    }
    public String getShaftData(){
        return shaftdata;
    }
}

Но этот метод OnEvent() вообще не вызывается. Я делаю это правильно?


person hari86    schedule 16.02.2016    source источник
comment
@sasikumar без ошибок. Невозможно setText() для моих текстовых представлений   -  person hari86    schedule 16.02.2016
comment
event.getBoreData() получить значение?   -  person sasikumar    schedule 16.02.2016
comment
@sasikumar Невозможно проверить event.getBoreData(), так как OnEvent не вызывается. Я вижу bus.post(bsValues); имеет значения в нем при публикации   -  person hari86    schedule 16.02.2016
comment
автобус? это класс? где этот код   -  person sasikumar    schedule 16.02.2016
comment
@sasikumar включает EventBus.jar в мой путь сборки и использует в качестве частной шины EventBus = EventBus.getDefault();   -  person hari86    schedule 16.02.2016
comment
@sasikumar В своей деятельности я заменяю фрагмент 1 фрагментом 2. И я хочу, чтобы мои данные во фрагменте 1 отражались во фрагменте 2. поэтому публикую данные в Onpause   -  person hari86    schedule 16.02.2016
comment
@sasikumar Сначала попробовал onResume(), но это не сработало, затем я перешел на OnPause()   -  person hari86    schedule 16.02.2016
comment
@sasikumar, когда создается фрагмент-2, он должен вызывать метод OnEvent (), верно? .Я поставил точку останова на OnEvent(). Это не туда.   -  person hari86    schedule 16.02.2016
comment
@sasikumar Я поместил код OnEvent() во фрагмент-2. Пожалуйста, обратитесь к моему вопросу о том, как я отправляю сообщения из фрагмента 1 и попадаю во фрагмент 2.   -  person hari86    schedule 16.02.2016
comment
попробуйте это public void onEvent(){ BoreShaftValues ​​event=new BoreShaftValues(); буреградацияselect.setText(event.getBoreData()); валgradeselect.setText(event.getShaftData()); }   -  person sasikumar    schedule 16.02.2016
comment
@sasikumar Выдает исключение de.greenrobot.event.EventBusException: класс подписчика com.tss.isofitsupdate.fragments.ToleranceFragment не имеет общедоступных методов, вызываемых onEvent   -  person hari86    schedule 16.02.2016
comment
извините, к сожалению, этот метод onEvent() никогда не вызывается... см. stackoverflow.com/questions/25474829/   -  person sasikumar    schedule 16.02.2016


Ответы (1)


Обычно я пытаюсь привязать EventBus обратно к Activity и в то же время позволить ему быть слабо связанным. Итак, в жизненном цикле фрагмента я регистрирую EventBus в onAttach и отменяю регистрацию в методах onDetach во фрагменте.

person Peter Birdsall    schedule 08.03.2016