【发布时间】:2016-02-25 10:44:38
【问题描述】:
假设有两个活动Activity1 和Activity2。我需要从methodAct2(Activity2 内部)调用方法methodAct1()(Activity1 内部)。我认为它应该使用回调侦听器工作 - 我不想使用 EventBus libs!
我使用此代码得到java.lang.NullPointerException:
界面:
public interface MyListener {
public void listen();
}
创建事件的活动:
public class Activity2 extends Activity {
private MyListener myListener;
public void setUpListener(MyListener myListener) {
this.myListener = myListener;
}
private void doWork(){
//do stuff
myListener.listen();
}
}
我希望在工作完成后获得该事件的活动:
public class Activity1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Activity2 activity2 = new Activity2();
activity2.setUpListener(new setUpListener() {
@Override
public void listen() {
// get the event here
}
});
}
}
【问题讨论】:
-
但一次只有一个活动被初始化,您应该在一个意图中发送一些数据并启动另一个活动并读取该数据或可能使用 startActivityForResult
-
你只是提到了接口,但你的活动都没有实现它
-
为什么要用构造函数实例化Activity?这不是这样做的方法。要开始一个新的活动,你必须创建一个
Intent并调用startActivity()。 -
@Sarthak Mittal 我不需要在第二个工作完成后初始化第一个,只需在那里运行一些代码
-
@VasileDoe 先加强你的基础然后你就会明白了:)
标签: java android callback listener