C# 资源不包含菜单的定义

C# 资源不包含菜单的定义,c#,xamarin.android,C#,Xamarin.android,我正在学习使用xamarin构建应用程序,在创建选项菜单时出错。 代码和元数据粘贴在下面 public override bool OnCreateOptionsMenu(IMenu menu) { MenuInflater inflater = MenuInflater; inflater.Inflate(Resource.Menu.Options, menu); return true; //return base.OnCreateOptionsMenu(me

我正在学习使用xamarin构建应用程序,在创建选项菜单时出错。 代码和元数据粘贴在下面

public override bool OnCreateOptionsMenu(IMenu menu)
{
    MenuInflater inflater = MenuInflater;
    inflater.Inflate(Resource.Menu.Options, menu);
    return true;
    //return base.OnCreateOptionsMenu(menu);
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
    if (item.ItemId == Resource.Id.action_refresh)
    {
        return true;
    }
    return base.OnOptionsItemSelected(item);
}
元数据粘贴如下:

public partial class Menu
{

    // aapt resource value: 0x7F0C0000
    public const int Options = 2131492864;

    static Menu()
    {
        global::Android.Runtime.ResourceIdManager.UpdateIdValues();
    }
public const int action_refresh = 2131230744;
        
这是使用Resource.Id.action_刷新时出现的第二个错误,设计器的元数据粘贴在下面:

public partial class Menu
{

    // aapt resource value: 0x7F0C0000
    public const int Options = 2131492864;

    static Menu()
    {
        global::Android.Runtime.ResourceIdManager.UpdateIdValues();
    }
public const int action_refresh = 2131230744;
        
这是输出:

1> ----构建已启动:项目:AndApp,配置:调试任何CPU----1>C:\Users\simon\source\repos\AndApp\AndApp\AndApp\MainActivity.cs(31,39,31,43):错误CS0117:“资源”不包含“菜单”1>C:\Users\simon\source\repos\AndApp\AndApp\MainActivity.cs(37,44,37,58)的定义:错误CS0117:'Resource.Id'不包含'action_refresh'的定义===========生成:0成功,1失败,0最新,0跳过==========================部署:0成功,0失败,0跳过==========


如果需要使用资源.菜单,则需要在资源文件夹下方创建一个菜单文件夹

然后在其中创建.xml文件。例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never" />
</menu>

注意:在资源中添加新元素时,最好清理项目并重建它。然后可以在代码中使用新元素。若还显示资源元素的红色下划线,则可以忽略它以继续构建和运行项目。它通常会成功运行。因为有时候VisualStudio无法立即将新元素更新为代码。

我这样做了,我的XML文件名是Options,文件夹名是menu,就像u saidI也清理了solution@AmazingPets好的,关闭VS,然后重新启动它,检查它是否工作。@AmazingPets以及
菜单
文件夹名的第一个单词是否为小写字母?否仍然相同,options.xml位于Resource.designer.cs,并从那里调用,而不是从文件夹的位置调用。