Android Studio выдает предупреждение (длина метода = 20), что нижеследующий метод onNavigationItemSelected (длина = 21) содержит длинный код. Есть ли способ сократить код?
@Override public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.nav_catalog) {
runActivity(CatalogActivity.class);
return false;
} else if (itemId == R.id.nav_new_chapters) {
runFragment(NewChaptersFragment.class.getName());
} else if (itemId == R.id.nav_bookmarks) {
runFragment(BookmarksFragment.class.getName());
} else if (itemId == R.id.nav_search) {
runFragment(SearchFragment.class.getName());
} else if (itemId == R.id.navigationFavoritesUser) {
runFragmentUserTab(ParserUserTab.FAVOURITES);
} else if (itemId == R.id.navigationWantToReadUser) {
runFragmentUserTab(ParserUserTab.I_WANT_TO_READ);
} else if (itemId == R.id.navigationTheListReadUser) {
runFragmentUserTab(ParserUserTab.LIST_OF_READ);
} else if (itemId == R.id.navigationNewChapterUser) {
runFragmentUserTab(ParserUserTab.NOVELTIES_FOR_ME);
} else if (itemId == R.id.navigationBookmarksUser) {
runFragmentUserTab(ParserUserTab.BOOKMARKS);
}
return true;
}
@Override public void runFragment(String nameClassFragment) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_main, Fragment.instantiate(this, nameClassFragment),
nameClassFragment)
.commit();
}
@Override public void runFragmentUserTab(int tab) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_main, UserTabFragment.newInstance(tab),
UserTabFragment.class.getName())
.commit();
}
Map<Integer, String> mFragments. Тогда метод onNavigationItemSelected будет таким:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.nav_catalog) {
runActivity(CatalogActivity.class);
return false;
} else {
if(mFragments.containsKey(itemId) {
runFragmentUserTab(mFragments.get(itemId));
}
}
return true;
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости