gpt4 book ai didi

java - Activity 到 Activity 回调监听器

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:29 25 4
gpt4 key购买 nike

假设有 2 个 Activity Activity1Activity2。我需要从 methodAct2(在 Activity2 内)调用方法 methodAct1()(在 Activity1 内)。我认为它应该使用回调监听器工作 - 我不想使用 EventBus 库!

我使用这段代码得到 java.lang.NullPointerException:

界面:

public interface MyListener {
public void listen();
}

创建事件的 Activity :

public class Activity2 extends Activity {

private MyListener myListener;

public void setUpListener(MyListener myListener) {
this.myListener = myListener;
}

private void doWork(){
//do stuff
myListener.listen();
}
}

我希望在工作完成后获得该事件的 Activity :

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

}
});
}
}

最佳答案

这是绝对不可能的。你永远不会自己实例化一个新的 Activity 。您不会同时运行两个 Activity 。

如果您希望另一个 Activity 根据您之前的 Activity 的要求执行某些操作,那么您需要将其添加到您的 Intent 中。

Intent intent = new Intent(this, Activity2.class);
intent.putExtra("data field", "data value");
startActivity(intent);

如果您希望通过回调实现特定功能,那么您可能会想到 Fragments .通过这种方式,您可以运行相同的 Activity,它可以告诉各个 Fragment 它们需要做什么。

关于java - Activity 到 Activity 回调监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33869151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com