java - 按下向上按钮时如何将数据发送到父活动
问题描述
按下后退按钮时,我能够将数据发送到父活动。但是,对于向上按钮,我无法实现类似的逻辑,并且数据没有返回到父活动,为什么会这样?
@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
用来开始儿童活动。关于onactivityresult
基本处理意图信息。返回时,按钮被按下它的工作。按下 UP 时onactivityresult
永远不会执行。那就是问题所在
解决方案
当您调用navigateUpFromSameTask
方法时,它会完成当前活动并启动(或恢复)适当的父活动。如果目标父活动在任务的后栈中,则将其提前。结果onActivityResult
不会被调用。
如果要确保通过onActivityResult
then remove 调用返回结果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);
}
推荐阅读
- laravel - Laravel 策略视图资源未触发
- flask - marshmallow-sqlalchemy 无法从父 model_schema 获取子模型的数据
- reactjs - 如何在 Reactjs 中提交表单后将焦点设置在空输入字段上
- ios - 使用应用程序上下文将数据从 iPhone 发送到 WatchOS 时遇到问题
- python - 将带有 groupby 子句的多个数据帧导出到一个 csv 文件中
- python-3.x - 比较两个文件并显示缺失的结果
- excel - Excel公式根据相应表格替换值
- css - 我的 SASS 循环使用插值和百分比中断
- spring - 引起:java.lang.AbstractMethodError
- javascript - OpenLayers 的 2D 画布库。绘制自定义交互对象