我已经按照 xamarin android 指南 here 中给出的说明实现了 android 工具栏 |
使用示例代码:
public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.mainMenu, menu);
return base.OnCreateOptionsMenu(menu);
}
和 xml:
<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_share"
local:showAsAction="ifRoom"
android:title="Share" />
<item
android:id="@+id/menu_settings"
local:showAsAction="ifRoom"
android:title="Settings" />
</menu>
现在我想将来 self 的 web api 的项目添加到工具栏,它们基本上是指向我们页面的链接,例如隐私政策等。但我无法在菜单上找到任何示例。添加执行此操作的方法。基本上我需要的是从我的 json 中构造 meny 项目,它返回:
[{
pageid:1,
pagename:"home",
pagehtmllink:"....."
},
{
pageid:2,
pagename:"About",
pagehtmllink:"....."
},
...........
]
如何从后面的代码中实现这一点?
最佳答案
IMenu
有一个 Add
方法,您可以调用:
public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.main_menu, menu);
menu.Add(0, 99, 0, "DB Copy to SDCard (Debug)");
return base. OnCreateOptionsMenu(menu);
}
有关参数,请查看 Android 文档:Menu.html#add
要捕获菜单选择,您可以检查 IMenuItem.ItemId
值:
public override bool OnOptionsItemSelected(IMenuItem item)
{
switch (item.ItemId)
{
case 99:
DoSomething();
return true;
default:
return false;
}
}
关于c# - Xamarin Android 工具栏如何动态添加项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48020436/