自定义视图中的 EventBus
EventBus in custom view
我正在自定义视图,我想从那里收听事件。我创建了一个 show() 和 hide() 方法,然后将 register 和 unregister 放在这些方法中。
但我试着把
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。
如何存档?谢谢
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 {
}
}
这个不行吗?
它适用于我的测试代码。
我正在自定义视图,我想从那里收听事件。我创建了一个 show() 和 hide() 方法,然后将 register 和 unregister 放在这些方法中。 但我试着把
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。
如何存档?谢谢
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 {
}
}
这个不行吗?
它适用于我的测试代码。