Visual Studio 2015を使用して追加のアクティビティ.csおよびレイアウトaxmlを追加します。
私はXamarinを初めて使用し、Android開発ですが、数年の間、VBそして今ではC#を使用して開発者でした。 Android 4.2私が進むにつれてより複雑になります。プロジェクトに追加のGpsAction.csおよび対応するGps.axmlレイアウトを追加したいという単純な問題。これを実現する適切な組み合わせ構文。main.axmlでmainActivityを使用します。VS2015では、新しいものを追加するのは非常に簡単ですが、「resource.idには定義が含まれていません」を取得し続けます。
namespace AddCam
{
[Activity(Label = "GpsActivity")]
public class GpsActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.GpsLayout);
string c = FindViewById<TextView>(**Resource.Id.textView1**).Text;
// Create your application here
}
}
まだこの問題に直面している人々のために、レイアウトファイルのデフォルトのビルドアクションはTransformFile
に設定されます。レイアウトを選択し、レイアウトプロパティに移動し、プロパティペインでビルドアクションとしてAndroidResource
を選択します。プロジェクトをクリーンビルドすると、動作するはずです。
テキストフィールド「id」を「@ + id/imageView1」から「1」に変更し、保存、再構築、および「@ + id/imageView1」に戻し、修正しました。追加したいのですが、この問題はすべて
かなり一般的なものですが、実際の問題は常に、新しいアクティビティとレイアウトをメインアクティビティに追加することであるように思われました。それは非常に複雑になり、Xamarin
の問題を突き止める論理的な方法(私には知られていません)があります。 Xamarinは10年前(筆者が最後に書いたモバイルアプリ)に比べて誤解しないでください。キーワード "this"が追加されたアクティビティでエラーリングになる理由がわからない場合は、コーディングが上手です。 cs
Android.Resource.Idのような名前空間を追加するだけです-それは私にとっては解決です
私にとってうまくいったこと(Visual Studio 2017、古いXamarinプロジェクトを開く):
これで、リソースが表示されます(もちろん、正しく定義した場合)。
アプリのaxmlにfor _Android:id="@+id/button1"
_の設定値を追加してから、プロジェクトを再構築して再試行してください。 thisButton button = (Button)FindViewById(Resource.Id.button1);
のように。
Axmlが正しい形式であることを確認し、動作するソリューションを再構築します。同じ問題が引き続き発生する場合は、axmlを削除して再度追加し、ソリューションをビルドします。
私の問題は、Xamarin Live Playerを使用してXamarin Androidプロジェクト(ネイティブ))をデバッグし、USBケーブルを使用して接続し、デバッグ用にデバイスを選択していたことでした。
私はこの問題が非常に古いことを理解していますが、Visual Studio 2019でも同様の問題に遭遇し、解決策を見つけました。
私にとっては、レイアウトに要素を追加してからコードを追加しようとすると、問題が発生します。この問題は、プロジェクトのビルド方法に関連しているようです。
コードを追加する前に、レイアウトに要素を追加してからプロジェクトをビルドしますどうやら、Resource.Idはビルドされるまで追加のメンバーで更新されず、Resource.Idが認識する前にコード内の新しいメンバーを参照しようとすると、プロジェクトのビルドが妨げられます。
Maniaczが言ったように、VS 2019では、リソースの下のレイアウトフォルダのレイアウトにXMLをaxml拡張に変更する必要がありました
レイアウトファイルにこれらの名前空間がないか確認してください-
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"
Visual Studio 2019では、プロジェクトに新しいAndroid Layoutを追加すると、.xmlファイルとして追加されます。Resources/ layoutフォルダーには、拡張子.axml(。 xml)と私のために拡張子.xmlを変更-> .axmlが働いた。
私が見つけた最良の解決策は、ソリューションを構築することです。ビルドメニューからソリューションのビルドを選択します(または Ctrl+Shift+B)。このアクションにより問題が解決します。
Main.axmlページをクリアしてリセットすると、動作します。