我的代码有问题。我想将 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");
}
代码有什么问题?
答案 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 例子。它解决了你的问题。