自定义视图中的EventBus

3

我正在定制一个View,并希望从这里监听事件。我创建了show()和hide()方法,然后在这些方法中注册和注销。 但是我尝试将

放置进去。
public class CalculatorView extends RelativeLayout {
.......

public void show() {
    Log.i("hieu", "eventBus register");
    EventBus.getDefault().register(this);
}

public void hide() {
    EventBus.getDefault().unregister(this);
    Log.i("hieu", "eventBus unreg");
}

@Subscribe(threadMode = ThreadMode.MAIN) 
public void onEvent(EventBusMessage eventBusMessage) 
{ Log.i("hieu", ""); }

但是它没有在 onEvent 中跳转。 我正在使用 EventBus 3.0.0。 如何实现这个?谢谢。

1个回答

1
public class ApplicationTest extends ApplicationTestCase<Application> {
public ApplicationTest() {
    super(Application.class);
}

public void testRun() {
    CalculatorView view = new CalculatorView(getContext());
    view.show();
    EventBus.getDefault().post(new EventBusMessage());
    view.hide();
}

public class CalculatorView extends RelativeLayout {

    public CalculatorView(Context context) {
        super(context);
    }

    public void show() {
        Log.i("hieu", "eventBus register");
        EventBus.getDefault().register(this);
    }

    public void hide() {
        EventBus.getDefault().unregister(this);
        Log.i("hieu", "eventBus unreg");
    }

    public void onEvent(EventBusMessage eventBusMessage) {
        Log.i("hieu", "");
    }
}

class EventBusMessage {

}

}

无法工作吗?

enter image description here

它在我的测试代码上运行良好。


是的,它没有起作用。我不知道为什么,但它没有在onEvent中跳转。 - Truong Hieu
是的,它又可以工作了。我意识到Logcat不会记录空字符串,这让我以为它没有起作用。感谢您的帮助。 而且你的onEvent方法需要@Subscribe,至少在3.0.0版本中需要。 - Truong Hieu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接