如何在Xamarin Android中动态修改菜单项

时间:2019-11-26 17:32:11

标签: xamarin menu menuitem

这是我的菜单axml的一部分:

<item 
    android:id="@+id/payBill"
    android:title="Pay Bill"/>

如果在应用操作过程中,我想将此菜单项文本更改为:

  <item 
    android:id="@+id/payBill"
    android:title="Paid Bill"/> 

我将如何访问菜单项?

我已经尝试过了:

 public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Menu.menu1, menu);
            myMenu = (Android.Views.Menu)menu;

            return base.OnCreateOptionsMenu(menu);

        }

其中myMenu被声明为Menu myMenu;

但是当代码到达该行时,我得到“特定的转换无效”。

如果我不使用此代码,而是稍后尝试动态引用菜单项:

   IMenuItem item = (IMenuItem)FindViewById(Resource.Id.payPaid);
   item.Title="Paid";      

项目为空。

我知道我可以在OnOptionsItemSelected(IMenuItem item)中修改菜单标题

但是在菜单标题出现之前,我需要对其进行修改。

我知道了:

我有一个全局变量:

IMenu myMenu; 然后在

 public override bool OnCreateOptionsMenu(IMenu menu)
 {
    MenuInflater.Inflate(Resource.Menu.menu1, menu); 
    myMenu = menu;
    return base.OnCreateOptionsMenu(menu);

}

稍后,当程序输入代码以更改菜单文本时:

IMenuItem item = myMenu.FindItem(Resource.Id.getPaid);
item.SetTitle("Paid");

0 个答案:

没有答案