xamarin.androidの練習をしております。
activity_main.xmlで配置したボタンをMainActivityで FindViewByIdすると
'Resource.Id' に 'resetButton' の定義がありませんと表示されます。
過去に同じ様な質問をされている方がいたので参考にしてみましたが、どうしても反映されません。
Resource.designer.csには設定したIDが反映されているのですが、
FindViewByIdで指定するとエラーになってしまいます。
何度か新しくソリューションを作成しても同じでした。
何回か試していると分かったことが、一番最初にビルドした時点ではきちんと認識されるのですが、
ボタンを追加して2回目のビルドをすると新しいIDは反映がされなくなる様な動きです。
私は何か根本的なことを見落としているのでしょうか?
ずっと悩んで分からないので教えていただけると助かります。。
環境 VisualStudio2019 Windows
試したこと
・FindViewByIdをコメントアウトしてから再起動 / リビルド。
・PC再起動
・新規でソリューション作成
【activity_main.xml】
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="00:00" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:minWidth="25px" android:minHeight="25px" android:id="@+id/time1" android:textSize="80dp" /> <Button android:text="Start" android:gravity="center" android:layout_margin="40dp" android:background="#FFFF55" android:textSize="30dp" android:layout_width="300dp" android:layout_height="100dp" android:id="@+id/startButton" /> <Button android:text="リセット" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/resetButton" /> </LinearLayout>
【MainActivity.cs】
using Android.App; using Android.OS; using Android.Support.V7.App; using Android.Runtime; using Android.Widget; namespace KKProjects { [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] public class MainActivity : AppCompatActivity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); var start_s = FindViewById<Button>(Resource.Id.resetButton); } public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) { Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults); base.OnRequestPermissionsResult(requestCode, permissions, grantResults); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/23 07:16