如何在单击 RecyclerView 行时打开菜单项

How to open menu item on click on RecyclerView Row

我有一个 BottomNavigationView 的应用程序,它有 2 个菜单项。两者都有 Fragments。在 Fragment 的第一项上,我有一个 RecyclerView。我想在单击 RecyclerView 行时打开第二个菜单项,并发送一些参数。我应该如何以及在哪里做?

我现在在做什么: 在我显示在第一个菜单项上的 Fragment 中,我有一个方法,我将其传递给 RecyclerViewAdapter,以便每次点击一行时都可以触发它。但是我在 listener as BottomNavActivity 中找不到任何方法来打开它的第二个菜单项

您需要在适配器中引用您的 activity。您可以在初始化期间使用

传递它
SomeAdapter(var activity: Activity)

然后在您的适配器中使用以下操作设置 onClickListener

activity?.navigation?.selectedItemId = R.id.navigation_id_here

从 API 25.3.0 开始,引入了方法 setSelectedItemId(int id),让您可以将项目标记为选中状态,就像它被点击一样。

来自文档:

Set the selected menu item ID. This behaves the same as tapping on an item.

代码示例:

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

对于仍在使用 SupportLibrary < 25.3.0 的用户

View view = bottomNavigationView.findViewById(R.id.menu_action_item);
view.performClick();