Как открыть пункт меню при нажатии на RecyclerView Row - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть приложение с BottomNavigationView, которое имеет 2 пункта меню. Оба имеют свои Fragments. По первому пункту в Fragment у меня есть RecyclerView. Я хочу открыть второй пункт меню при нажатии на строку RecyclerView, а также отправить некоторые параметры. Как и где мне это сделать?

Что я делаю сейчас: В Fragment, который я показываю в первом пункте меню, у меня есть метод, который я передаю RecyclerViewAdapter, чтобы его можно было запускать при каждом нажатии строки. Но я не могу найти какой-либо метод в моем listener as BottomNavActivity, чтобы открыть его второй пункт меню

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

Вам нужна ссылка на вашу деятельность в адаптере. Вы можете передать это во время инициализации, используя

SomeAdapter(var activity: Activity)

Затем внутри вашего адаптера вы устанавливаете onClickListener со следующим действием

activity?.navigation?.selectedItemId = R.id.navigation_id_here
0 голосов
/ 22 апреля 2019

Из API 25.3.0 был введен метод setSelectedItemId(int id), который позволяет пометить элемент как выбранный, как если бы он был нажат.

Из документов:

УстановитьID выбранного пункта меню.Это ведет себя так же, как нажатие на элемент.

Пример кода:

BottomNavigationView bottomNavigationView;
bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottomNavigationView);
bottomNavigationView.setSelectedItemId(R.id.my_menu_item_id);

Для тех, кто все еще использует SupportLibrary <25.3.0 </p>

View view = bottomNavigationView.findViewById(R.id.menu_action_item);
view.performClick();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...