最近有个这样的需求 :MainActivity 里面包含两个fragment(FmFragment &AmFragment),现在是点击两个fragment界面都能跳转到公共的子activity中 通过点击子activity 返回到指定的fragment中 当时以为很简单 直接startactivity()就行 ,运行之后发现MainActivity中的的fragment并没有切换 ,以为是replaceFragment问题 发现用addfragment 一样 还是没有效果 ,然后又设置Mainactivity的启动模式 singTop 切换是切换成功了 但是界面会存在两个MainActivity 返回退出会点击2次 这就要了老命了诶~
---------------------------------------------------------------华丽的分割线---------------------------------------------------------------
太难了啊!!!!
然后发现用startactivityforResult api可以解决~
首先,在fragment中的AstartActivityForResult(intent, requestCode);方法前面加 getActivity(). 这样可以让fragment的宿主MainActivit启动目标ActivityC,这样就可以在MainActivit 中重写的 onActivityResult方法捕获到返回值 , 接下来就可以在MainActivity中判断requestCode以及 resultCode 来决定显示哪个fragment。
@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode==2){ checkFM(); }else if ( resultCode==1){ checkAM(); } }
完美解决!!!!
bye~