ruzD
ruzD

Reputation: 555

Intents - startActivityForResult

I make app with the MainActivity and Activity2. I have sent info from MainActivity to Activity2 and Activity2 to MainActivity.

I would like to sent the variable opcio to startActivityForResult but I do not know how. I use this code from MainActivity:

opcio = OPCIO_1;
startActivityForResult(new Intent(getApplicationContext(), Activity2.class), ACTIVITY_NUM);

After from Activity2 I do not know to recovery this info.

Please Could you help me?

Thanks.

Upvotes: 2

Views: 132

Answers (2)

Al Wld
Al Wld

Reputation: 939

How about something along these lines?

Send extra from MainActivity to Activity2:

public static final int REQUEST_CODE = 0;
Intent intent = new Intent(MainActivity.this, Activity2.class);
intent.putExtra("extra", opcio);
startActivityForResult(intent, REQUEST_CODE);  

Retrieve extra in Activity2:

String opcio = getIntent().getStringExtra("extra");

Sending extra from Activity2 to MainActivity:

Intent data = new Intent();
data.putExtra("extra", opcio);
setResult(RESULT_OK, data);

Retrieve extra in MainActivity:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == REQUEST_CODE){
        String opcio = data.getStringExtra("extra);
    }
}

Upvotes: 2

Ahmet Kocaman
Ahmet Kocaman

Reputation: 109

MainActivity:

Intent i = new Intent(MainActivity.this, Activity2.class);
opcio = OPCIO_1;
i.putExtra("send", opcio);
startActivityForResult(i, 1);

Activity2 where closes:

setResult(1);
finish();

MainActivity :

    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == 1){
        //Your code
    }
}

Upvotes: 0

Related Questions