Android - 选定的导航项返回到第一个导航项

问题描述

我的 MainActivity 有一个底部导航,认为第一项。根据通过意图收到的数据,我希望更改所选项目。我在 MainActivity 的 OnCreate 方法上使用以下代码

    if (getIntent().getExtras() != null) {
        String deepLink = getIntent().getExtras().getString("type");
        
        if (deepLink.equals("mydata")) {
            if (loggedIn) {
                bottomNav.setSelectedItemId(R.id.myitem);
            }
        }
    } else {
        setTitle("First");
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new FirstFragment(),"First").commit();
    }

这最初有效,但一两秒后,所选项目恢复为第一个。我该怎么做才能使所选项目在加载后保持活动状态?

解决方法

在选择项目之前尝试延迟

这里我设置了 100 毫秒,如果它不起作用,您可以增加它

new Handler(getMainLooper()).postDelayed(new Runnable() {
    @Override
    public void run() {
        bottomNav.setSelectedItemId(R.id.myitem);
    }
},100); // 100 msec delay