【发布时间】:2016-02-15 18:55:00
【问题描述】:
根据 Android 文档public void startActivityForResult (Intent intent, int requestCode, Bundle options)。
我不知道如何检索我传递给意图的额外捆绑选项。
当我调用 startActivityForResult 方法时,我想传递一个带有数据的 ArrayList 作为额外的捆绑选项。
代码示例:
ArrayList<String> list = new ArrayList<>();
list.add("test1");
list.add("test2");
Bundle bundleOptions = new Bundle();
bundleOptions.putStringArrayList("key", list);
startActivityForResult(intent, 10, bundleOptions);
在检索数据时:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
Bundle extras = data.getExtras();
Bundle extras 不包含我试图传递的额外包。我缺少什么并且无法检索传递给该方法的额外 Bundle 数据?
我也尝试使用intent.putExtra("key", bundleOptions);,也尝试使用intent.putExtra("key", list);,但也没有成功,并调用方法startActivityForResult(intent, 10);,但再次没有成功。
我确定我遗漏了一些东西有人知道如何实现吗?
【问题讨论】:
-
你从哪里执行调用?片段?活动 ?
onActivityResult在哪里?Intent data是空的还是空的? -
我从一个类中的 Activity 执行,然后在另一个类中检索数据。代码工作正常,我试图在检索活动中传递额外的参数。感谢您为我提供帮助的时间和精力。
-
在调用结果回调时,您确定发送的 Activity 还活着吗?
-
这是一个我不知道的问题,我怎么能确定呢?我可以检索意图的数据,但不能检索我试图传递的额外参数。
-
首先在活动
onDestroy和结果回调中添加日志消息
标签: android android-intent android-activity