gpt4 book ai didi

安卓 Activity 结果

转载 作者:行者123 更新时间:2023-11-30 04:53:27 25 4
gpt4 key购买 nike

我有两个 Activity ,我需要在它们之间传递一个对象数组。从主要 Activity 开始,我使用 startActivityForResult() 启动次要 Activity ,并将数组作为 Bundle 中的 ParcelableArray 传递。这可以很好地使数组进入次要 Activity ;我可以将数组从 Bundle 中拉出并从那里对其进行操作。

我遇到的问题是当我想将数组传回调用 Activity 时。当用户按下设备上的后退/返回按钮时,我需要它发生。我已经尝试将数组放回 Bundle 中,在辅助 Activity 的 onPause() 中调用 setResult(),但我假设这是不正确的位置执行任务。我得出的结论是 onPause() 中的 getCallingActivity() 返回 null。

在这种情况下,将 Bundle 返回给调用 Activity 的正确方法是什么?

主要 Activity :

    Bundle b = new Bundle();
b.putParcelableArray("com.whatever.data", items);

Intent folderView = new Intent(MainView.this, FolderView.class);
folderView.putExtras(b);
startActivityForResult(folderView, 1);

次要 Activity :

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 中,您需要 Hook onBackPressed()

关于安卓 Activity 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1798252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com