Android从其他活动获取结果

时间:2012-11-14 13:58:38

标签: java android android-activity

我的代码有问题。我想将 SecondActivity 中的字符串传递给 FirstActvity 。请注意, FirstActivity 不可见但仍处于打开状态。当 SecondActivity 完成后,它会将字符串传递给 FirstActivity

我的问题是,当 SecondActivity 结束并转到 FirstActivity 时,整个应用程序将关闭。

FirstActivity to SecondActivity:

Intent  intent = new Intent(MainActivity.this, FileChooser.class);
startActivityForResult(intent, 0);

FirstActivity的SecondActivity:

Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("filePath", "/sdcard/path1");
setResult(0);
finish();

FirstActivity结果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //TODO handle here.         
    Intent intent = getIntent();        
    this.filePath = intent.getExtras().getString("filePath");
}

代码有什么问题?

4 个答案:

答案 0 :(得分:2)

设置SecondActivity的结果时,只需设置结果代码。而不是setResult(0)使用setResult(0,intent)

此外,在您的FirstActivity的onActivityResult中,从data参数中获取额外内容 - this.filePath = data.getExtras().getString("filePath");

答案 1 :(得分:2)

尝试使用

data.getExtras().getString("filePath");

而不是

intent.getExtras().getString("filePath");`

答案 2 :(得分:0)

尝试使用Bundle:

第一项活动;

public void onClick(View v) {
        Intent intent = new Intent(v.getContext(), FIRSTACTIVITY.class);
        Bundle bundle = new Bundle();
        bundle.putString("filePath","/sdcard/path1");
        intent.putExtras(bundle);               
        startActivity(intent);
    }

第二项活动:

public void activity_value() {
    Intent i = getIntent();
    Bundle extras=i.getExtras();
    if(extras !=null) {           
        value = extras.getString("filePath");
    }
}

答案 3 :(得分:0)

尝试this 例子。它解决了你的问题。