xamarin初心者です。C#はそこそこやったことがあります。
このサイトを参考にプログラムを作っていきました。
しかし、上のサイトにあるように
MainActivity.csを記述してからコンパイルしようとすると
C#
1Button btnM = FindViewById<Button>(Resource.Id.btnSayHello); 2TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg);
の箇所に対して
resourceにIDの定義がありません
また
No resource type specified (at 'id' with value '@+txtMsg').
とエラーが発生します。
上のサイトを見てみてもIDの定義を記述するといった手順を踏んでいません。
Resource.Designer.csに何か記述するかと推測されるのですが、
何を書けばいいのかさっぱりわかりません。
どうすればエラーが解けるか回答お願いします。
追記1
MainActivity.csのコードです。
C#
1using Android.App; 2using Android.Widget; 3using Android.OS; 4 5namespace anti_offtime 6{ 7 [Activity(Label = "DroidSample", MainLauncher = true, Icon = "@drawable/icon")] 8 public class MainActivity : Activity 9 { 10 11 protected override void OnCreate(Bundle bundle) 12 { 13 base.OnCreate(bundle); 14 15 // Set our view from the "main" layout resource 16 SetContentView(Resource.Layout.Main); 17 18 Button btnM = FindViewById<Button>(Resource.Id.btnSayHello); 19 TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg); 20 21 btnM.Click += delegate 22 { 23 txtV.Text = "こんにちは"; 24 }; 25 } 26 } 27}
追記2
Main.axml
C#
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent"> 6 <Button 7 android:text="btnSayHello" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:id="@+id/btnSayHello" /> 11 <TextView 12 android:textAppearance="?android:attr/textAppearanceLarge" 13 android:layout_width="match_parent" 14 android:layout_height="wrap_content" 15 android:id="@+txtMsg" /> 16 <TextView 17 android:text="Large Text" 18 android:textAppearance="?android:attr/textAppearanceLarge" 19 android:layout_width="match_parent" 20 android:layout_height="wrap_content" 21 android:id="@+id/textMsg" /> 22</LinearLayout>
追記3
上のプログラムがなぜか起動できなくなったので再度作り直しました。
コードは以下に示します。
Main.axml
C#
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent"> 6 <Button 7 android:text="Button" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:id="@+id/btnSayHello" /> 11 <TextView 12 android:text="Large Text" 13 android:textAppearance="?android:attr/textAppearanceLarge" 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:id="@+id/txtMsg" /> 17</LinearLayout>
MainActivity.cs
C#
1using Android.App; 2using Android.Widget; 3using Android.OS; 4 5namespace anti_offtime 6{ 7 [Activity(Label = "offtimekiller", MainLauncher = true, Icon = "@drawable/icon")] 8 public class MainActivity : Activity 9 { 10 11 protected override void OnCreate(Bundle bundle) 12 { 13 base.OnCreate(bundle); 14 15 // Set our view from the "main" layout resource 16 SetContentView(Resource.Layout.Main); 17 18 Button btnM = FindViewById<Button>(Resource.Id.btnSayHello); 19 TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg); 20 21 btnM.Click += delegate 22 { 23 txtV.Text = "こんにちは"; 24 }; 25 } 26 } 27}
エラーが
C#
1// Set our view from the "main" layout resource 2 SetContentView(Resource.Layout.Main); 3 4 Button btnM = FindViewById<Button>(Resource.Id.btnSayHello); 5 TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg);
これらのコードに対して現在のコンテキストにresourceという名前は存在しません
追記4再度作り直しました
MainActivity.cs
using Android.App; using Android.Widget; using Android.OS; namespace App5 { [Activity(Label = "DroidSample", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); Button btnM = FindViewById<Button>(Resource.Id.btnSayHello); TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg); btnM.Click += delegate { txtV.Text = "こんにちは"; }; } } }
Main.axml
C#
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent"> 6 <Button 7 android:text="Button" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:id="@+id/btnSayHello" /> 11 <TextView 12 android:text="Large Text" 13 android:textAppearance="?android:attr/textAppearanceLarge" 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:id="@+id/txtMsg" /> 17</LinearLayout>
Resource.Designer.cs
も追記しておきました
C#
1#pragma warning disable 1591 2//------------------------------------------------------------------------------ 3// <auto-generated> 4// このコードはツールによって生成されました。 5// ランタイム バージョン:4.0.30319.42000 6// 7// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 8// コードが再生成されるときに損失したりします。 9// </auto-generated> 10//------------------------------------------------------------------------------ 11 12[assembly: global::Android.Runtime.ResourceDesignerAttribute("App5.Resource", IsApplication=true)] 13 14namespace App5 15{ 16 17 18 [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] 19 public partial class Resource 20 { 21 22 static Resource() 23 { 24 global::Android.Runtime.ResourceIdManager.UpdateIdValues(); 25 } 26 27 public static void UpdateIdValues() 28 { 29 } 30 31 public partial class Attribute 32 { 33 34 static Attribute() 35 { 36 global::Android.Runtime.ResourceIdManager.UpdateIdValues(); 37 } 38 39 private Attribute() 40 { 41 } 42 } 43 44 public partial class Layout 45 { 46 47 // aapt resource value: 0x7f020000 48 public const int Main = 2130837504; 49 50 static Layout() 51 { 52 global::Android.Runtime.ResourceIdManager.UpdateIdValues(); 53 } 54 55 private Layout() 56 { 57 } 58 } 59 60 public partial class String 61 { 62 63 // aapt resource value: 0x7f030000 64 public const int app_name = 2130903040; 65 66 static String() 67 { 68 global::Android.Runtime.ResourceIdManager.UpdateIdValues(); 69 } 70 71 private String() 72 { 73 } 74 } 75 } 76} 77#pragma warning restore 1591 78
C#
1Button btnM = FindViewById<Button>(Resource.Id.btnSayHello); 2 TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg);
にたいして ResouceにIDの定義がありませんと出てきます
回答3件
あなたの回答
tips
プレビュー