简体   繁体   中英

How to send data from the 5th activity to the 1st activity?

I am using 5 activities. from activity1 I move to activity2, from act2 to act3, from act3 to act4 and from act4 to act5. activity 2 carries data to act3 and like this act5 receives data of act2, act3, act4 and then send all data to act 1.

My First activity

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);

    }

My Second activity

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

My Fifth activity

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();

Try below:

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);

And then process your passed result in onCreate (in case activity got destroyed) or onNewIntent (if your activity is still running but you bring it to front and update it with new intent) of your firstactivity

 //A simple approach to solve this issue is to use sharedpreferences 

//store value from activity five
getsharedpreferences('temp','MODE_PRIVATE').edit().clear().putString('values','new value').apply();

//get values from shared preferences if its available
String value 5 = getsharedpreferences('temp','MODE_PRIVATE').getString('values','nil');
getsharedpreferences('temp','MODE_PRIVATE').edit().clear();

first activity

static ArrayList<String> arlist=new ArrayList<String>();
arlist.add("value");
arlist.add("value1");
arlist.add("value2");

In second Activity

ActivityOne.arlist

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM