2024年1月27日发(作者:)
fragment 中使用registerforactivityresult
在 Android 中,registerForActivityResult 是用于从启动的 Activity 中获取结果的一个便捷方法,尤其是在 Fragments 中使用时。这个方法在 ActivityResultLauncher 类中定义,它允许你以类型安全的方式注册一个 ActivityResult 回调。
下面是如何在 Fragment 中使用 registerForActivityResult 的一个基本示例:
定义一个 ActivityResultLauncher:
java
private ActivityResultLauncher
在 onCreate 或 onViewCreated 中初始化:
java
mFileChooser = registerForActivityResult(new
ltipleDocuments(), result -> {
if (result != null && !y()) {
// 处理选择的文件路径
}
});
启动 Activity 并传递数据:
java
Intent intent = new Intent(_OPEN_DOCUMENT);
egory(RY_OPENABLE);
e("*/*"); // 例如: image/*, video/* 等
(intent);
取消请求(可选):
如果你想取消请求,可以使用 ActivityResultLauncher 的 cancel 方法。
在适当的时候取消注册:
当你不再需要结果时,可以通过调用 unregister 方法来取消注册。
处理结果:
当用户从文件选择器中选择文件后,你的 Fragment 将收到这些文件路径,你可以在 onActivityResult 方法中处理这些结果。
在 onDestroyView 或 onDestroy 中取消注册:
为了确保资源得到正确释放,最好在 Fragment 的生命周期结束时取消注册。
使用 registerForActivityResult 可以简化从启动的 Activity 获取结果的代码,尤其是在处理复杂的数据类型或多个结果时。
本文发布于:2024-01-27 02:59:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1706295576969.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |