片段更改时如何更改操作栏上的菜单项

How to change menu items on action bar when fragment changes

我开发了一个导航抽屉,其中包含多个片段和操作栏。当我更改片段时,我想知道操作栏上的项目会发生变化。

根据 guide 你可以做到

第一个: 为片段

创建菜单文件

第二个: onCreate() 片段集的方法 setHasOptionsMenu(true);

第三个: 覆盖 onCreateOptionsMenu,您将在其中扩充片段的菜单并将其附加到标准菜单。

第四名: 在您的片段中覆盖项目处理程序的 onOptionItemSelected

您可以在“创建选项菜单时设置如下”后访问您的菜单项

 override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
        inflater.inflate(R.menu.menu_collections_new, menu)

        val menuItem2:MenuItem=menu.findItem(R.id.men_item2)
        menuItem2.title="new title2"
        

        super.onCreateOptionsMenu(menu, inflater)



    }/

干杯...

你能试试这个吗

// declare a menu object at the top of the activity
Menu AppMenu;

// instantiate the AppMenu instance in the activity’s 
onCreateOptionsMenu(Menu menu)
// with code similar to:
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.myMenuLayout, menu); 
AppMenu = menu;
    return true;
}
// declare a menu object at the top of the activity
Menu AppMenu;

// instantiate the AppMenu instance in the activity’s 
onCreateOptionsMenu(Menu menu)
// with code similar to:
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.myMenuLayout, menu);
AppMenu = menu;
    return true;
}

// in the button click handler or menu item code, switch the title as 
needed
AppMenu.findItem(R.id.menuitem_expense_accept).setTitle("Expenses");// or 
“Accept”


// in the button click handler or menu item code, switch the title as 
needed
AppMenu.findItem(R.id.menuitem_expense_accept).setTitle("Expenses");// or 
“Accept”