#android #android-fragments #navigation-drawer
#Android #android-фрагменты #навигационный ящик
Вопрос:
Привет, я не эксперт в разработке Android. Я пытаюсь разработать приложение, используя шаблон навигационного ящика Android Studio. Итак, я создал новый проект, используя этот шаблон. Но когда я запускаю программу и нажимаю на пункт меню, представление не меняется. Итак, я искал везде в Интернете, я не видел, как я могу справиться с этим. Это код, предоставленный studio
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camara) {
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
Чего я хочу добиться, так это заменить текущее представление на соответствующее представление, на которое нажимается меню.
Комментарии:
1. ваш вопрос заключается в том, как вызвать фрагмент, который не имеет никакого отношения к навигационному ящику (только вы получаете идентификатор элемента ящика), в вашем условии if else .. выполните транзакцию фрагмента .. и прикрепите новый фрагмент к вашему фрейму.. найдите, как это сделать!
2. поскольку меня искали, и попробуйте инструкцию, все равно ничего не произойдет… итак, я публикую свой вопрос здесь
Ответ №1:
Создайте галерею.Java и вставьте этот код:
public class Gallery extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_gallery,null);
}
}
И в ваш файл навигационного ящика вставьте этот код:
if (id == R.id.nav_gallery)
{
Fragment fragment = new Gallery();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.framelayout, fragment).commit();
}