当前位置: 代码迷 >> 综合 >> activity中跳转到fragment的思路
  详细解决方案

activity中跳转到fragment的思路

热度:65   发布时间:2023-10-23 07:29:52.0

在android应用开发中,我们经常会遇到activity跳转到fragment或者activity跳转到activity,但是对于activity中跳转到fragment中,这个是不能够直接去跳转的,所以下面就谈一下我的理解,如果有更好的可以谈论。当然你也说用eventBus等第三方的库,我只是提供我的思路,方法各异。

既然不能直接就去跳转到fragment,我就先去跳转到Activity中,根据Activity中显示的方法去显示我需要的fragment。

Intent mIntent = new Intent(this, MainActivity.class);
mIntent.putExtra("statuCar", "1");
startActivity(mIntent);
finish();
通过这个代码传到了MainActivity。
这边需要注意的是这个MainActivity我们需要将它的启动模式设置成
android:launchMode="singleTask",

栈内复用模式,不会造成每次都要new一个新的mainActivity出来。

接着就是在MainActivity中如何去接收了,因为如果单单getIntent来判断返回值的话会出现只要你的statuCar有值,将会一直存在。
所以在MainActivity中我是这么去接收的:
@Override protected void onNewIntent(Intent intent) {super.onNewIntent(intent);Log.e("onNewIntent", "onNewIntent: ");String statuCar = intent.getStringExtra("statuCar");if (!TextUtils.isEmpty(statuCar)) {show(shoppingcarFragment);tabSelected(ll_shopping);Log.i("TAG", "initView: " + statuCar);}}
是在onNewIntent方法中进行的判断这个方法的特性就是只要有这个intent传过来,那么就执行这个方法而不去执行onCreate()方法,onNewIntent()---->onResart()------>onStart()----->onResume()生命周期就发生了更改
有兴趣的可以自行去百度看看这个方法,以上是我的思路,虽然问题挺简单,但我还是去想想自己有收获就好。
 
  
  相关解决方案