startActivityForResult

时间:2015-11-09 20:25:31

标签: android string android-intent start-activity

我想从活动#1开始活动#2,并要求从#2到#1取得结果。

我阅读了指导和指南以及教程,但没有任何帮助我。

活动#2中的

我有一个最后的字符串(让我们称之为"终结字符串")。

活动#1中的

我有一个按钮,可以将用户发送到POPUP活动(#2),如果用户在POPUP区域外单击,则会返回活动#1。

简而言之,没有返回按钮。

到目前为止,我尝试了

的基本方法
Intent Open1 = new Intent(Two.this, Popup1.class);
startActivityForResult(Open1, String.finalstring);

但它不起作用。

我看到我应该在某些情况下放置IF条件,否则它们都不起作用。我该怎么办?

1 个答案:

答案 0 :(得分:1)

其实你理解错了,

让我们在你的Activity1(popup1)中说:

您正在启动Activity2(popup2),例如

Intent startActivity2 = new Intent(Popup1.this,  popup2.class);
startActivityForResult(startActivity2, 0); // 0 is our request_code

现在,你必须在Activity1(popup1)中实现onActivityResult()方法,它将从Activity2(popup2)中捕获你的结果。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check request 
    if (requestCode == 0) {
       // Make sure the request was successful
       if (resultCode == RESULT_OK) {
           // Here is your final string
           String resultFromActivity2 = data.getStringExtra("result);
        }
    }
}

现在,在您调用完成的Activity2(popup2)中,将您的字符串结果写入意图,如

Intent returnIntent = new Intent();
returnIntent.putExtra("result","your_string_result"); // your_string_result should be change with string you want to pass
setResult(Activity.RESULT_OK,returnIntent);
finish();