Java 按下“向上”按钮时如何向父活动发送数据
按下“后退”按钮时,我可以向父活动发送数据。 然而,对于up button,我无法实现类似的逻辑,并且数据没有返回到父活动,这是为什么Java 按下“向上”按钮时如何向父活动发送数据,java,android,Java,Android,按下“后退”按钮时,我可以向父活动发送数据。 然而,对于up button,我无法实现类似的逻辑,并且数据没有返回到父活动,这是为什么 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case an
@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
启动childactivity。Ononactivityresult
基本上处理意图信息。当返回时,按下按钮即可工作。当在ActivityResult上按UP键时,将永远不会执行。这就是问题所在试试下面的方法
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
.....
startActivity(new Intent(YourActivity.this,ParentActivity.class).putExtra("noteJSON", noteJSON.toString()));
return true;
调用
navigateUpFromSameTask
方法时,它将完成当前活动并启动(或恢复)相应的父活动。如果目标父活动位于任务的后堆栈中,则会将其提前。因此,不会调用ActivityResult上的
如果要确保通过ActivityResult返回结果,请按如下方式删除对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);
}
不工作意味着只有数据不传递或意图不工作当我按下up按钮时,它会返回到父级,但数据不会得到更新。但对于back,它可以正常工作,ActivityResult不会被调用。这就是为什么请显示您如何在父活动中获取数据。您是否可以显示父活动的代码,其中您正在启动子活动,并且您的onactivityresultIm使用startActivityForResult启动子活动。On onactivityresult主要处理信息。当返回时,按下按钮即可工作。当在ActivityResult上按up时,将永远不会执行。这就是问题所在,它仍然不起作用。未调用onActivityResult。Iv验证了OnOptionItemSelected中的代码正在执行,但OnActivityResults中的代码没有执行,那么为什么要删除NavUtils.navigateUpFromSameTask(这);成功了work@32a我已在答覆中作出解释。如果不清楚,请告诉我