开发者社区 问答 正文

Android活动结果

我有两个活动,我需要在两个活动之间传递一个对象数组。在主活动中,我从开始辅助活动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);
}

展开
收起
Puppet 2020-01-23 13:26:34 467 分享 版权
1 条回答
写回答
取消 提交回答
  • IIRC,我已经迷上了onKeyDown(),看着在那里KeyEvent.BUTTON_BACK打电话setResult()。在Android 2.0中,您会选择挂钩onBackPressed()。

    2020-01-23 13:26:50
    赞同 展开评论
问答分类:
问答地址: