Доступ к идентификаторам ресурсов в Switch
Здравствуйте в MainActivity был переключатель по BottomNavigationView. Он был реализован через switch, сейчас пытаюсь переделать, но в switch сейчас похоже нельзя получить доступ к ID ресурса в новых версиях плагина Gradle. Как сейчас правильно реализовать переключатель?
Сейчас пытаюсь сделать так:
private void changeMenu() {
bottomNavigationView = findViewById(R.id.bottom_nav);
bottomNavigationView.setSelectedItemId(R.id.home);
bottomNavigationView.setOnItemSelectedListener(item -> {
switch (item.getItemId()) {
case R.id.favorites:
startActivity(new Intent(getApplicationContext(), FavoritesActivity.class));
overridePendingTransition(0,0);
return true;
case R.id.settings:
startActivity(new Intent(getApplicationContext(), FavoritesActivity.class));
overridePendingTransition(0,0);
return true;
case R.id.myfiles:
startActivity(new Intent(getApplicationContext(), FavoritesActivity.class));
overridePendingTransition(0,0);
return true;
case R.id.home:
return true;
}
return false;
});
}
Ответы (1 шт):
Автор решения: Style-7
→ Ссылка
Начиная с версии Gradle 8.0 ресурсы по умолчанию не объявляются с ключевым словом final для какой-то оптимизации, что не очень понятно.
Для включения данного режима нужно добавить одну строку в файл gradle.properties
android.nonFinalResIds=false
или же все переделывать в конструкцию if else if ...