2

Привет Iam с помощью шины событий для передачи данных от одного фрагмента к другому Фрагмент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() метод не вызывался на всех. Я делаю это правильно?

+0

@sasikumar никаких ошибок. Невозможно setText() для моего Textviews – hari86

+0

event.getBoreData() получить значение? – sasikumar

+0

@sasikumar Невозможно проверить event.getBoreData(), так как OnEvent не вызывает. Я вижу bus.post (bsValues); имеет значения в нем при размещении – hari86

ответ

1

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