意图 - startActivityForResult

时间:2016-09-27 15:40:53

标签: android android-activity

我使用MainActivity和Activity2制作应用。我已将信息从MainActivity发送到Activity2和Activity2到MainActivity。

我想将变量opcio发送到startActivityForResult,但我不知道如何。我使用MainActivity中的代码:

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

在Activity2之后,我不知道要恢复此信息。

请你能帮帮我吗?

感谢。

2 个答案:

答案 0 :(得分:2)

这些方面的内容怎么样?

从MainActivity向Activity2发送额外内容:

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

在Activity2中检索额外内容:

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

从Activity2向MainActivity发送额外内容:

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

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

答案 1 :(得分:0)

MainActivity:

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

活动2关闭:

setResult(1);
finish();

MainActivity:

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