代码之家  ›  专栏  ›  技术社区  ›  Nuwan Withanage

无法选中底部导航视图项

  •  2
  • Nuwan Withanage  · 技术社区  · 7 年前

    我有两个活动叫“主要活动”和“图书馆活动”。这两个活动使用相同的“底部导航视图”。在这种情况下,当 意图称为“库活动”。问题是通过使用“libraryactivity”底部的“navigation view”项目中的“onbackpressed()”返回到“mainactivity”时没有用其他颜色突出显示。

    以下是我的代码:

    main活动.java

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);       
    
            context = this;
    
            bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
    
     // used to highlight the correct item
    
            Menu bottomMenu = bottomNavigationView.getMenu();
            for (int i=0; i<bottomMenu.size(); i++)
            {
                MenuItem bottomMenuItem = bottomMenu.getItem(0);
                bottomMenuItem.setChecked(true);
            }
    
    // item click listener
    
            bottomNavigationView.setOnNavigationItemSelectedListener(
                    new BottomNavigationView.OnNavigationItemSelectedListener() {
                        @Override
                        public boolean onNavigationItemSelected(MenuItem item) {
                            switch (item.getItemId()) {
                                case R.id.action_library:
                                    Intent intent = new Intent(getApplicationContext(), LibraryActivity.class);
                                    intent.putExtra("NUM", "0");
                                    startActivity(intent);
    
                                    break;
                            }
                            return true;
                        }
                    });
    
        }
    

    libraryactivity.java库活动

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_library);
    
            context = this;
    
            bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottom_navigation);
            BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
    
    // used to highlight the correct item
    
            Menu bottomMenu = bottomNavigationView.getMenu();
            for (int i=0; i<bottomMenu.size(); i++)
            {
                MenuItem bottomMenuItem = bottomMenu.getItem(1);
                bottomMenuItem.setChecked(true);
            }
    
    // item click listener
    
            bottomNavigationView.setOnNavigationItemSelectedListener(
                    new BottomNavigationView.OnNavigationItemSelectedListener() {
                        @Override
                        public boolean onNavigationItemSelected(MenuItem item) {
                            switch (item.getItemId()){
                                case R.id.action_for_you:
                                    onBackPressed();
    
                                    break;
    
                            return true;
                        }
                    });
    
        }
    
    @Override
        public void onBackPressed() {
            super.onBackPressed();
        }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Dishonered    7 年前

    拿着这个密码,

       Menu bottomMenu = bottomNavigationView.getMenu();
        for (int i=0; i<bottomMenu.size(); i++)
        {
            MenuItem bottomMenuItem = bottomMenu.getItem(0);
            bottomMenuItem.setChecked(true);
        }
    

    把它放在这里,

    @Override
    protected void onResume() {
        super.onResume();
        Menu bottomMenu = bottomNavigationView.getMenu();
        for (int i=0; i<bottomMenu.size(); i++)
        {
            MenuItem bottomMenuItem = bottomMenu.getItem(0);
            bottomMenuItem.setChecked(true);
        }
    }
    

    以便在某些其他活动完成并恢复当前活动后恢复时更新。