无法选择Android NavigationView

无法选择Android NavigationView,android,navigationview,Android,Navigationview,我有一个抽屉布局在前面和导航视图在后端代码 我有3个活动,主要活动包括抽屉布局、列车活动、设置活动 当我想从Main->Train导航时,我只是启动intent,而不是完成MainActivity,因为MainActivity包含googlemap。我将主要活动保存到backback中 导航Main->Train后,在TrainActivity中,我想导航回MainActivity on Backpressed或其他任何方法 问题是,当我选择Train或SettingActivity时,Main

我有一个抽屉布局在前面和导航视图在后端代码

我有3个活动,主要活动包括抽屉布局、列车活动、设置活动

当我想从Main->Train导航时,我只是启动intent,而不是完成MainActivity,因为MainActivity包含googlemap。我将主要活动保存到backback中

导航Main->Train后,在TrainActivity中,我想导航回MainActivity on Backpressed或其他任何方法

问题是,当我选择Train或SettingActivity时,MainActivity上的NavigationView无法启动intent

导航场景Main->Train->Main->Setting/Train,但我得到的是Main->Train->Back to Main->NavigationView无法再次选中NavigationView上的选中列表菜单

代码如下:

private void setupDrawerContent(NavigationView navigationView) {

    initNavigationProfile();

    navigationView.setNavigationItemSelectedListener(
            new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(MenuItem menuItem) {
                    menuItem.setChecked(true);
                    mDrawerLayout.closeDrawers();
                    final Context context = getBaseContext();
                    final Handler handler = new Handler();
                    switch (menuItem.getItemId()) {
                        case R.id.map_home:
                            showLoadingBar();
                            final Intent mainIntent = new Intent(getApplicationContext(), MainActivity.class);
                            handler.postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                    startActivity(mainIntent);
                                    handler.removeCallbacks(this);
                                    hideLoadingBar();
                                    finish();
                                }
                            }, 300L);
                            break;
                        case R.id.train_schedule:
                            showLoadingBar();
                            final Intent trainIntent = new Intent(getApplicationContext(), TrainScheduleActivity.class);
                            handler.postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    trainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                    startActivity(trainIntent);
                                    handler.removeCallbacks(this);
                                    hideLoadingBar();
                                    finish();
                                }
                            }, 300L);
                            break;
这里的代码是反压的

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            super.onBackPressed();
            return true;
    }

    return super.onOptionsItemSelected(item);
}

我不知道是什么导致NavigationView无法选择任何项目

我认为您不应该使用Runnable启动其他活动。只需在新的意图完成后调用startActivity,然后在另一个视图上添加OnBackpress代码activity@user3641702嗯。我认为这是我为过渡做UX的额外代码。但这与导航视图问题有关吗?您的onBackPressed似乎还可以。runnable可能会干扰活动的启动方式。如果你打开你的主要活动,你是否在导航抽屉中遇到任何奇怪的行为?或者问题是在从一项活动转到另一项活动时发生的?问题是在从另一项活动回来后再转到另一项活动时发生的,说起来似乎很复杂。但以下是场景:主->列车->返回主->发生错误不能选择并膨胀新活动