我有一个带有BottomNavigationView
的应用,其中包含2个菜单项。两者都有其Fragments
。在Fragment
的第一项上,我有一个RecyclerView
。我想打开RecyclerView
行上的第二个菜单项,并发送一些参数。我应该如何在哪里做?
我现在在做什么:
在第一个菜单项上显示的Fragment
中,我有一个传递给RecyclerViewAdapter
的方法,以便每次轻按一行都可以触发它。但我在listener as BottomNavActivity
中找不到打开第二个菜单项的任何方法
答案 0 :(得分:1)
您需要引用适配器中的活动。您可以在初始化期间使用
SomeAdapter(var activity: Activity)
然后在适配器内部,通过以下操作设置onClickListener
activity?.navigation?.selectedItemId = R.id.navigation_id_here
答案 1 :(得分:0)
从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
的用户View view = bottomNavigationView.findViewById(R.id.menu_action_item);
view.performClick();