工具栏后退/主页按钮的Xamarin资源ID与资源不匹配.Id.home



我在Xamarin中为Android中的一个活动创建了一个工具栏。我已经用SupportActionBar.SetDisplayHomeAsUpEnabled(true);启用了后退/主页按钮。我正试图用以下代码捕捉按下后退/主页按钮的事件,如本帖子和许多其他stackoverflow帖子所示:

public override bool OnOptionsItemSelected(IMenuItem item)
{
System.Diagnostics.Debug.WriteLine("OnOptionsItemSelected() called: " + item.ItemId);
switch (item.ItemId)
{
case Resource.Id.home:
System.Diagnostics.Debug.WriteLine("Home button pressed");
Finish();
return base.OnOptionsItemSelected(item);
default:
return base.OnOptionsItemSelected(item);
}
}

当我按下后退按钮时,会调用OnOptionsItemSelected,但item.ItemId而不是等于Resource.Id.home。前者为16908332(在两种不同的设备上测试(,后者为2131492903。如何从Xamarin中的工具栏捕获主页/后退按钮?一种可能的选择是将后退按钮ID硬编码为16908332,但我不知道这个数字是否会永久保持不变。

您使用了错误的资源,您需要来自Android空间的资源:

Android.Resource.Id.Home

正确使用的是

case Android.Resource.Id.Home:
Finish();
break;

最新更新