W grze słownej dla Androida Obecnie mam ustalony menu napompowane z left_drawer_menu.xml
i składa się z 3 grup (moim kolei kolei przeciwnik i wreszcie inne rzeczy):Jak dodać element do grupy menu w NavigationView
mLeftDrawer = (NavigationView) findViewById(R.id.left_drawer);
mLeftDrawer.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(final MenuItem menuItem) {
Menu menu = mLeftDrawer.getMenu();
if (menuItem.getGroupId() == R.id.my_move) {
menu.setGroupCheckable(R.id.my_move, true, true);
menu.setGroupCheckable(R.id.his_move, false, false);
menu.setGroupCheckable(R.id.extras, false, false);
} else if (menuItem.getGroupId() == R.id.his_move) {
menu.setGroupCheckable(R.id.my_move, false, false);
menu.setGroupCheckable(R.id.his_move, true, true);
menu.setGroupCheckable(R.id.extras, false, false);
} else if (menuItem.getGroupId() == R.id.extras) {
menu.setGroupCheckable(R.id.my_move, false, false);
menu.setGroupCheckable(R.id.his_move, false, false);
menu.setGroupCheckable(R.id.extras, true, true);
}
menuItem.setChecked(true);
mLeftItem = menuItem.getItemId();
mDrawerLayout.closeDrawer(mLeftDrawer);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (mLeftItem == R.id.start) {
startNewGame();
}
}
},DRAWER_CLOSE_DELAY);
return true;
}
});
teraz staram się zmienić to menu dynamicznie.
Mam instancję SQLite zawierającą wszystkie dane gry i używam IntentService
do odczytu/zapisu bazy danych - ta część działa dobrze.
Mój obecny trudnością jest: z następującego kodu, nowe elementy są dodawane poza grupę R.id.my_move
:
if (mLeftItem == R.id.start) {
startNewGame();
Random r = new Random();
int i = r.nextInt(100);
menu.add(R.id.my_move, i, i, "Item " + i); // why is my_move ignored?
}
UPDATE:
Jako dalsze badania Próbowałem przypisywać równe, a nawet żadne pozycje do 2 oddzielnych grup z tym kodem:
Random r = new Random();
int i = r.nextInt(100);
int group = 1 + (i % 2); // can be 1 or 2
menu.add(group, i, i, "Item " + i);
Jednak wynik wygląda chaotycznie:
Również odkryli (prawdopodobnie już ustalone?) Issue 176300 i zastanawiam się, czy może podmenu powinny być lepiej wykorzystane zamiast grup menu?
Czy możesz opublikować swój xml tam, gdzie zdefiniowałeś swoje grupy? – random
Dziękujemy, oto: https://gist.github.com/afarber/03408cf4d1e3f267589f –
zobacz [this] (http://stackoverflow.com/questions/30609408/how-to-add-submenu-items-to -navigationview-programowo-zamiast-menu-xml) może ci pomóc – pRaNaY