首页 > 解决方案 > 如何将数据从第 5 个活动发送到第 1 个活动?

问题描述

我正在使用 5 个活动。从活动1 我移动到活动2,从act2 到act3,从act3 到act4,从act4 到act5。活动2携带数据到act3,就像这样act5接收act2,act3,act4的数据,然后将所有数据发送给act 1。

我的第一个活动

I{

    Intent i= new Intent(firstactivity.this, secondactivity.class);
    startActivityForResult(i, 10);

  }

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 10) {

        String a= data.getStringExtra("Value1");
        String b= data.getStringExtra("Value2");
        String c= data.getStringExtra("Value3");
        String d= data.getStringExtra("Value4");

        String showall = a+", "+b+", "+c+", "+d;
        address.setText(showall);

    }

我的第二个活动

Intent intent = new Intent(secondactivity.this, thirdactivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
            intent.putExtra("Value1", firstvalue);
            startActivity(intent);

我的第五个活动

Intent intent = new Intent(fourthactivity.this, fifthactivity.class);
            intent.putExtra("Value1", geta);
            intent.putExtra("Value2", getb);
            intent.putExtra("Value3", getc);
            intent.putExtra("Value4", getd);
            intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
            setResult(10);

            finish();

标签: javaandroid

解决方案


试试下面:

Intent intent = new Intent(fifthactivity.this, firstactivity.class);
intent.putExtra("Value1", geta);
intent.putExtra("Value2", getb);
intent.putExtra("Value3", getc);
intent.putExtra("Value4", getd);
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT|Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
startActivity(intent);

然后处理您传递的结果onCreate(以防活动被破坏)或onNewIntent(如果您的活动仍在运行但您将其放在前面并以新的意图更新它)您的firstactivity


推荐阅读