我在这里阅读了有关OnOptionsItemSelected
未在Android中调用的不同文章,因为我在Xamarin.Android中遇到了同样的问题。
我的主要活动中有一个菜单,但我根本没有使用片段。菜单从XML文件中读取:
public override bool OnCreateOptionsMenu(IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.main, menu);
return base.OnCreateOptionsMenu(menu);
}
然后我尝试使用以下代码捕获ItemSelected事件:
public virtual bool OnOptionsItemSelected (IMenuItem item)
{
string test;
Console.WriteLine ("Test");
return true;
}
但它不起作用且事件未被调用。 我尝试过其他事件:
public virtual bool OnMenuItemSelected (int featureId, IMenuItem item)
{
string test;
Console.WriteLine ("Test");
return true;
}
public void OnGroupItemClick( IMenuItem item) {
// One of the group items (using the onClick attribute) was clicked
// The item parameter passed here indicates which item it is
// All other menu item clicks are handled by onOptionsItemSelected()
int i = 0;
string test;
Console.WriteLine ("Test");
test = item.MenuInfo.ToString ();
}
但这些事件都没有被调用过。菜单在那里,但我无法捕捉到ClickedEvents。 我如何捕获ClickedEvents?
答案 0 :(得分:0)
您的代码似乎在干净的应用程序中工作(刚刚在VS2013上试用过Xamarin.Android Alpha通道,最新版本)。 您可以尝试一些事项:
除此之外,您使用的是外部库/组件吗?
答案 1 :(得分:0)
我找到了答案。问题是我使用virtual
方法
而不是我必须使用override
方法。