web-dev-qa-db-ja.com

XamarinでResource.Idが機能しない

これはmain.axmlファイルです。

`<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:minWidth="25px"
    Android:minHeight="25px">
    <ListView
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:id="@+id/myListView" />
</LinearLayout>`

そして、これはMainActivity.csファイルです:

保護されたオーバーライドvoid OnCreate(Bundle bundle){base.OnCreate(bundle);

    // Set our view from the "main" layout resource
    SetContentView(Resource.Layout.Main);

    Glop = new List<string>();

    Glop.Add("Tom");
    Glop.Add("Dick");
    Glop.Add("Harry");

    Name = FindViewById<ListView>(Resource.Id.myListView);

}

Xamarin Androidでリストビューを作成しようとしています。

Android IdをmyListViewに変更し、アプリを再構築しようとしましたが、それでもエラーとして表示されます。今何をすべきですか?

9
ANSHIT KALAR

アプリを再構築して、main.axmlファイルを保存してみてください。

15
Seinfeld

Visual Studio Community 2019 Preview(V 16.0.0、Pr 5.0)の場合):

この問題とデザイナーの多くの問題について、私は繰り返し以下を行わなければなりません:

  • すべてのドキュメントを保存してVSを閉じます。
  • ファイルブラウザでプロジェクトフォルダに移動します
  • 「obj」フォルダと「bin」フォルダを削除(偏執狂の場合は名前を変更)
  • VSを再起動して、デザイナーを再試行してください。

このバージョンでは(許可されていますが、ベータ版です)、デザイナーを開いた状態でプロジェクトをクリーンアップすると、アクセス許可エラーが発生し、これらの手順で修正できます。

7
Bungler

1)ビルド->クリーンソリューション

2)ソリューションの構築

3
gogo

次のようにリソースファイルのプロパティを調整します。

enter image description here

2
Denis Derkach

オプション1)Xamarin.Androidを更新します([ツール]> [オプション]> [Xamarin]> [その他]> [今すぐ確認])

オプション2)管理者としてVSを実行し、[ビルド]> [クリーンアップしてソリューションを再構築]。

私の場合、オプション1でうまくいきました。 enter image description here

2
Ishwor Khanal

このような問題に直面しました。原因は、プロジェクト内の重複するリソースIDにある可能性があります。たとえば、この問題は、レイアウトファイル(.axml)をコピーして、ソリューションエクスプローラーペインのレイアウトリソースフォルダーに直接貼り付けると、詳細なリソースID名のレビューを行わなくても発生します。

プロジェクトの名前空間のID参照ルールは一意になるためです。 .DesignerファイルでリソースIDが自動生成されている間、VSは使用するつもりのものを特定できなかったため、同じリソースIDのすべてのケースがスキップされ、警告なしに処理されない場合があります。

結果は次のとおりです。同じプロジェクトでレイアウトファイルを複製した後、コーディング中にそれらのリソース名またはIDを参照できなくなりました。

私にとっての解決策は、プロジェクトで重複するID名を探し、それらが一意になるように修正することです。

1
user1779049