如何在单击 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();
我有一个 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();