Android调用startActivity跳转时重启当前Activity而非启动MenuActivity问题
问题根因
你已经定位到了错误点:MenuActivity的onCreate方法中加载Fragment的逻辑直接复用了之前的代码,错误加载了LoginFragment而非预期的MenuFragment,所以点击登录跳转到MenuActivity后,界面展示的还是登录页,视觉效果就和当前Activity重启一致。
修复方案
只需要修改MenuActivity里的Fragment初始化逻辑即可,修正后的代码如下:
public class MenuActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); // 把所有LoginFragment替换为MenuFragment即可 FragmentManager fm = getSupportFragmentManager(); MenuFragment frag = (MenuFragment) fm.findFragmentById(R.id.menuFragmentContainer); if(frag == null) { frag = new MenuFragment(); fm.beginTransaction() .add(R.id.menuFragmentContainer, frag) .commit(); } } }
调试建议
这类复制粘贴带来的类型错误属于开发常见问题,后续遇到类似跳转异常时,可以先在目标Activity的onCreate方法里加个断点或者打印日志,就能快速区分是跳转逻辑没生效,还是跳转后加载的内容不符合预期,减少无效排查时间。
内容的提问来源于stack exchange,提问作者LuckyHunter
相关产品推荐
相关产品推荐

