gpt4 book ai didi

android - 通过多个 Activity 传递数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:25:04 26 4
gpt4 key购买 nike

1- 是我的第一个 Activity (主要)2-是我的第二个 Activity 3 - 是我的第三个 Activity

我想从 1 运行 2,然后形成 2 运行 3,然后我从 3 获取数据并将其返回给 1。希望你们能理解。

这是我的代码:

Runing 2 form 1 是这样的:

            Intent intent = new Intent(getApplicationContext(),MessageBox.class);
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivityForResult(intent,5);

然后像这样从 2 运行 3:

                Intent intent = new Intent(getApplicationContext(),ImageReceiver.class);

startActivityForResult(intent,5);

然后在 3 中我有这样的东西:

          setResult(10);
finish();

所以我将结果设置为 2 以获得我得到的结果:

        if(requestCode==5)
{
if(resultCode==10)
{

Intent intent = new Intent(getApplicationContext(),MainActivity.class);

setResult(5,intent);
finish();
}
}

然后在 1 中我得到了:

     if(requestCode==5)
{
if(resultCode==5)
{
//here i am taking data from 3
}
}

问题是我什至无法在 logcat 中打开 2,因为我得到:

04-23 22:13:15.579: E/AndroidRuntime(15313): android.util.AndroidRuntimeException: FORWARD_RESULT_FLAG 在请求结果时使用

而且我真的不知道我应该做什么。请看这段代码。

最佳答案

从 1 开始 2 时不能这样做:

Intent intent = new Intent(getApplicationContext(), MessageBox.class);
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivityForResult(intent,5);

这将引发您遇到的异常。您不能同时使用 FLAG_ACTIVITY_FORWARD_RESULTstartActivityForResult()

如果你想让1从3得到结果,那么你需要像这样从1开始2:

Intent intent = new Intent(getApplicationContext(), MessageBox.class);
startActivityForResult(intent, 5);

然后像这样从 2 开始 3:

Intent intent = new Intent(getApplicationContext(), ImageReceiver.class);
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(intent);
finish();

这告诉 Android Activity 3 (ImageReceiver) 应该将其结果转发回调用 Activity 2 (MessageBox) 的 Activity 。当 Activity 3 设置其结果并完成时, Activity 1 中的 onActivityResult() 将使用 Activity 3 发送的结果数据进行调用。

关于android - 通过多个 Activity 传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23254618/

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