У меня проблема в android. Когда я пытаюсь выбрать первый элемент при запуске и выберите другой элемент, кроме первого элемента, поэтому у меня есть два элемента. Это мой код. Я добавил navigationView.getMenu(). PerformIdentifierAction (R.id.menu_program, 0), чтобы выбрать первый элемент, но я думаю, что проблема исходит из этого (я не знаю). БлагодаряСтиль Android выбран двумя элементами
public class MainActivity extends AppCompatActivity {
private DrawerLayout drawerLayout;
private Toolbar toolbar;
private NavigationView navigationView;
private ActionBarDrawerToggle actionBarDrawerToggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
actionBarDrawerToggle = setupActionBarDrawerToggle();
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
navigationView = (NavigationView) findViewById(R.id.navigation_view);
setupNavigationViewContent(navigationView);
if (savedInstanceState == null) {
navigationView.getMenu().performIdentifierAction(R.id.menu_program, 0);
}
}
private ActionBarDrawerToggle setupActionBarDrawerToggle() {
return new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
}
private void setupNavigationViewContent(NavigationView navigationView) {
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
selectNavigationViewItem(item);
return true;
}
});
}
private void selectNavigationViewItem(MenuItem item) {
/*if (lastItem == null) {
lastItem = item;
item.setChecked(true);
Log.e("TAG", "selectNavigationViewItem: "+lastItem);
} else {
lastItem.setChecked(false);
}*/
Fragment fragment = null;
Class fragmentClass;
switch (item.getItemId()) {
case R.id.menu_program:
fragmentClass = Fragment1.class;
break;
case R.id.menu_visitor:
fragmentClass = Fragment2.class;
break;
case R.id.menu_partner:
fragmentClass = Fragment3.class;
break;
case R.id.menu_about:
fragmentClass = Fragment4.class;
break;
case R.id.menu_team:
fragmentClass = Fragment5.class;
break;
case R.id.menu_contact:
fragmentClass = Fragment6.class;
break;
default:
fragmentClass = Fragment1.class;
}
try {
fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frame_layout_content, fragment).commit();
item.setChecked(true);
setTitle(item.getTitle());
drawerLayout.closeDrawers();
}
@Override
public void onPostCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onPostCreate(savedInstanceState, persistentState);
actionBarDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
actionBarDrawerToggle.onConfigurationChanged(newConfig);
}
}
вы пытались <группа андроида: checkableBehavior = «сингл»> внутри menu.xml? – siva35
ya, как я уже сказал, проблема решена, но теперь, когда я пытаюсь повернуть первый элемент, не проверяется. cos onCreate вызывается и сохраняетсяInstance не является нулевым –