我有两个活动,我需要在两个活动之间传递一个对象数组。在主活动中,我从开始辅助活动startActivityForResult(),并将数组作为BuncelableArray传递到Bundle中。可以很好地使数组进入辅助活动。我可以将阵列拉出捆绑包,然后从那里进行操作。
我遇到的问题是当我想将数组传递回调用活动时。我需要在用户按下设备上的“后退/返回”按钮时发生。我试过将数组放回Bundle中,在次要活动中setResult()从内部调用onPause(),但我假设这是执行任务的不正确位置。我已经得出该结论,因为getCallingActivity()内部onPause()返回null。
在这种情况下,将Bundle返回到呼叫活动的正确方法是什么?
主要活动:
Bundle b = new Bundle();
b.putParcelableArray("com.whatever.data", items);
Intent folderView = new Intent(MainView.this, FolderView.class);
folderView.putExtras(b);
startActivityForResult(folderView, 1);
次要活动:
protected void onPause () {
super.onPause();
Intent result = new Intent();
Bundle b = new Bundle();
b.putParcelableArray("com.whatever.data", items);
result.putExtras(b);
setResult(Activity.RESULT_OK, result);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
IIRC,我已经迷上了onKeyDown(),看着在那里KeyEvent.BUTTON_BACK打电话setResult()。在Android 2.0中,您会选择挂钩onBackPressed()。