1

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

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

FirstActivity 到 SecondActivity:

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

SecondActivity 到 FirstActivity:

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

第一活动结果:

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

4 回答 4

2

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

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

于 2012-11-14T14:03:52.913 回答
2

尝试使用

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

代替

intent.getExtras().getString("filePath");`
于 2012-11-14T14:07:51.690 回答
0

尝试捆绑:

第一个活动;

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");
    }
}
于 2012-11-14T14:03:32.400 回答
0

试试这个例子。它 解决了你的问题。

于 2012-11-14T14:11:50.140 回答