ANDROID Навигационная панель меню 1 выбран элемент
У меня в меню навигации есть 3 меню, в каждом из которых есть еще несколько пунктов. У меня возникают проблемы, когда я нажимаю каждый элемент в меню, я хочу, чтобы выбранный пункт был выбран, но другие элементы не выбраны. Ниже приведена картинка, чтобы вы могли увидеть, в чем проблема:
Для выбора я использую item.setChecked(true); в onNavigationItemSelected(меню MenuItem). Я хочу, чтобы был выбран только 1 элемент, поэтому, когда я отмечал один элемент, я хочу, чтобы другие элементы не были выбраны.
Я ищу в Google, но обычно они говорят, что мне нужно разделить каждое меню на группу android:checkableBehavior="single", что я сделал, но все равно не работает:
РЕДАКТИРОВАТЬ СТАРТ:
Я просто нахожу решение, вместо item.setChecked (true) я пишу navigationView.setCheckedItem(R.id.itemId); и теперь все работает.
Я нахожу решение по этой ссылке:
РЕДАКТИРОВАТЬ КОНЕЦ
Вот код для box_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Animals">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/dog"
android:icon="@drawable/ic_action_dog"
android:title="Domestic Animals" />
<item
android:id="@+id/wild"
android:icon="@drawable/ic_action_dog"
android:title="Wild Animals" />
<item
android:id="@+id/bird"
android:icon="@drawable/ic_action_bird"
android:title="Birds" />
<item
android:id="@+id/fish"
android:icon="@drawable/ic_action_fish"
android:title="Sea Animals" />
<item
android:id="@+id/insects"
android:icon="@drawable/ic_action_bubamara"
android:title="Insects" />
</group>
</menu>
</item>
<item android:title="Others">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/car"
android:icon="@drawable/ic_action_car"
android:title="Cars" />
<item
android:id="@+id/smiley"
android:icon="@drawable/ic_action_smiley"
android:title="Laugh" />
<item
android:id="@+id/earth"
android:icon="@drawable/ic_action_earth"
android:title="Nature" />
<item
android:id="@+id/sounds"
android:icon="@drawable/ic_action_zvucnik"
android:title="Effects" />
<item
android:id="@+id/tools"
android:icon="@drawable/ic_action_clock"
android:title="Others" />
</group>
</menu>
</item>
<item android:title="Change pictures">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/change_picture_id"
android:icon="@drawable/ic_action_promjena_slike"
android:title="Change Picture"></item>
</group>
</menu>
</item>
</menu>
Вот код для событий щелчка по элементам меню в навигационной панели:
navigationView = (NavigationView) findViewById(R.id.navigation_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.dog:
homeFragment.sortiranje("Domestic", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.wild:
homeFragment.sortiranje("Wild", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.bird:
homeFragment.sortiranje("Birds", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.fish:
homeFragment.sortiranje("Sea", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.insects:
homeFragment.sortiranje("Insects", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.car:
homeFragment.sortiranje("Cars", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.smiley:
homeFragment.sortiranje("Laugh", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.earth:
homeFragment.sortiranje("Nature", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.sounds:
homeFragment.sortiranje("Effects", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.tools:
homeFragment.sortiranje("Others", tagonja);
item.setChecked(true);
drawerLayout.closeDrawers();
break;
case R.id.change_picture_id:
item.setChecked(true);
if (tagonja == 0) {
tagonja = 1;
homeFragment.promjenaSlike(tagonja);
} else if (tagonja == 1) {
tagonja = 0;
homeFragment.promjenaSlike(tagonja);
}
drawerLayout.closeDrawers();
break;
}
return false;
}
});