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;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Предположим что у нас есть текстовик, в котором текст вида: Number = 1 Vasya Number = 2 Valera Number = 3 Kolya
Консоль с сайта codefights,подключенные библиотеки по умолчанию:
Для упрощения тестирования сделал примитивное клиент-серверное приложениеСервер на Java + web клиент на HTML+JS