3

MenuInflater を使用して MonoDroid でメニューを作成しようとしていますが、「「メニュー」のスキーマ情報が見つかりませんでした」というメッセージが引き続き表示されます

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:id="@+id/Search"
         android:title="@string/Search"
         android:icon="@drawable/ic_menu_search_holo_light"
         android:showAsAction="ifRoom"
        />
  <item android:id="@+id/AddProduct"
        android:title="@string/AddProduct"
        android:icon="@drawable/ic_menu_add"
        android:showAsAction="ifRoom"
        />
</menu>

Resource.designer.cs にメニューが含まれていないため、AndroidResource に変更して再ビルドすることで修正しようとしました。

MenuInflater コード。

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        //Use UI created in Main.axml
        SetContentView(Resource.Layout.Main);

        var AddNewProduct = FindViewById<Button>(Resource.Id.AddNewProduct);
        AddNewProduct.Click += (sender, e) =>
        {
            StartActivity(typeof(AddProduct));
        };
    }
    public override void OnCreateOptionsMenu(IMenu menu)
    {
        MenuInflater menuInfalter = MenuInflater;
        menuInfalter.Inflate(Resource.Menu.MainMenu, menu);

        base.OnCreateOptionsMenu(menu);
    }

私はたくさんの悪いコードがあることを知っています。しかし、メニュー xml を Resource.designer.cs に追加する方法を知る必要がありますか?

4

1 に答える 1

0

MonoDevelop または Visual Studio を使用して、Menu ディレクトリとリソース ファイルを追加します。そうすれば、それらは csproj に追加され、ビルド プロセス中にパッケージ化されます。ディレクトリにファイルを追加するだけでは、それらはビルドに含まれません。

于 2012-12-17T23:51:12.903 に答える