按下后退按钮时,我能够将数据发送到父 Activity 。 但是,对于向上按钮我无法实现类似的逻辑并且数据没有返回到父 Activity ,这是为什么?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
.....
Intent resultIntent = new Intent();
resultIntent.putExtra("noteJSON", noteJSON.toString());
setResult(Activity.RESULT_OK, resultIntent);
this.finish();
return true;
}
return super.onOptionsItemSelected(item);
}
我正在使用 startActivityForResult
启动子 Activity 。在 onactivityresult
上基本上处理了 Intent 信息。当返回时,按钮被按下它的工作。当按下 UP 时,onactivityresult
永远不会被执行。这就是问题所在
最佳答案
当您调用navigateUpFromSameTask
方法时,它会结束当前 Activity 并启动(或恢复)适当的父 Activity 。如果目标父 Activity 在任务的返回堆栈中,则将其提前。因此 onActivityResult
不会被调用。
如果您想要确保通过 onActivityResult
返回结果,请移除对 navigateUpFromSameTask
的调用,如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
....
Intent resultIntent = new Intent();
resultIntent.putExtra("noteJSON", noteJSON.toString());
setResult(Activity.RESULT_OK, resultIntent);
this.finish();
return true;
}
return super.onOptionsItemSelected(item);
}
关于java - 按下向上按钮时如何将数据发送到父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50894163/