android 从Activity跳转到fragment执行onActivityResult最简单的解决方法
在开发android中,有些人往往很疑惑,当一个FragmentActivity中有多个Fragment
的时候,如a,b,c三个Fragment(碎片),
其中b中进行了操作,跳转到了新的D界面
(activity
)。但是当D操作完后,返回值到b Fragment(碎片)。
那么问题就来了,肯定会有人问,b是一个Fragment(碎片),如何才能接收到D传过来的值呢?
解决方法非常简单:
1、现在b fragment 中添加 onActivityResult 方法,如下:
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Log.i("Test1","-----------requestCode="+requestCode); Log.i("Test1","-----------resultCode="+resultCode); switch (resultCode){ case 1://在这里获取你需要的数据 Toast.makeText(getContext(),"提交意见反馈成功",Toast.LENGTH_LONG).show(); break; case 2: break; } }
2、在b fragment 跳转到 D Activity 执行如下方法:
startActivityForResult(new Intent(getContext(), FeedbackActivity.class),1);
3、D activity 跳转到 b fragment 执行如下代码:
setResult(1);
finish();
4. 数据从activity 传到 fragment 如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | //发送方 Intent intent = new Intent(SearchActivity. this ,HomeActivity. class ); Bundle bundle = new Bundle(); bundle.putSerializable( "myquota" , quota); intent.putExtras(bundle); startActivity(intent); //activity 代码 Bundle bundle = getIntent().getExtras(); Quota quota = null ; if (bundle != null ) { quota = (Quota) bundle.getSerializable( "myquota" ); } mFragments = new ArrayList<>(); HomeFragment homeFragment = HomeFragment.newInstance(quota); //fragment 代码 private static Quota dataQuota; public static HomeFragment newInstance(Quota quota) { dataQuota = quota; return new HomeFragment(); } |
分类:
Android技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2014-10-08 asp.net发送邮件