从不同的活动调用方法

发布于 2024-10-10 11:47:16 字数 184 浏览 1 评论 0原文

我有一个关于从不同活动中的一个活动调用方法的问题。我有一个使用 startActivityForResult 的活动,并在第二个活动完成后返回结果,但在对第二个活动调用 finish() 之前,我想在第一个活动中调用刷新()方法。

我最初的想法是将第一个活动作为意图中的额外内容传递,这样我就可以引用该活动的方法,但看不到这是如何完成的。

I have a question regarding calling a method from one activity in a different activity. I have an activity which uses startActivityForResult and gets a result back after the second activity is finished, but before I call finish() on the second activity I want to call A refresh() method in the first activity.

My initial thought is to pass the first activity as an extra in the intent so I can reference the methods for the activity but can't see how this is done.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

缱绻入梦 2024-10-17 11:47:16

为什么在完成 Activity B 之前对 Activity A 调用 refresh() ?如果您使用 startActivityForResult() 启动了 Activity B,那么您将在 Activity A 内的 onActivityResult() 中获得结果。然后您可以调用 refresh()< /code> 此时。举个例子:

Activity B has:

setResult(RESULT_OK);
finish();

Activity A has:

private static final int ACTIVITY_B = 0;
...
Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent,ACTIVITY_B );
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    switch (requestCode){
    case ACTIVITY_B:
        switch (resultCode){
        case RESULT_OK:
            refresh();
            break;
        }
    }
}

或者您可以使用其他结果代码来指示其他事件。

Why call refresh() on Activity A before finishing Activity B? If you have started Activity B using startActivityForResult() then you will get a result back in onActivityResult() within Activity A. You can then call refresh() at that point. So to give an example:

Activity B has:

setResult(RESULT_OK);
finish();

Activity A has:

private static final int ACTIVITY_B = 0;
...
Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent,ACTIVITY_B );
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    switch (requestCode){
    case ACTIVITY_B:
        switch (resultCode){
        case RESULT_OK:
            refresh();
            break;
        }
    }
}

Or you can use other result codes to signal other events.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文