前回の記事では、Android用のプロジェクトを作成しました。
今回は、配置したコントロールに名前を付け、イベントを作成する方法について見ていきます。
はじめに、コントロールに名前を付けてみましょう。
前回配置したButtonを選択したら、プロパティウィンドウで「id」という項目を探して下さい。この「id」がWindowsアプリでいうところのNameプロパティに該当します。
新しいidは、プロパティ入力欄の「@+id/」の後ろに入力します。
id名をbtnSayHelloにする場合は「@+id/btnSayHello」とします。
ついでに表面の文字も変更してみましょう。こちらはTextプロパティに対して設定をします。「クリック」という文字を設定してみましょう。設定後のプロパティウィンドは以下のようになります。
続いて前回貼り付けたLarge TextにもidとTextプロパティを設定しておきましょう。
idはtxtMsgに、Textプロパティは空欄に設定をしてください。
続いてイベントを作成します。
残念ながらプロパティウィンドからイベントを作成することはできないようです。そこでコードからイベントを作成します。
ソリューションエクスプローラーからMainActivity.csを開いて以下のようにコードを編集してください。
[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 = "こんにちは"; }; } }
OnCreateはAndroidの起動時に実行されるメソッドです。このメソッドではアプリの初期化処理などを行います。今回はこの中にButtonのイベント作成します。
はじめに、画面に配置したButtonとTextViewコントロールをコードから使用できるようにします。それぞれのButton型の変数btnMとTextView型の変数txxVに入れることとします。コード中のFindViewByIdは、画面に配置したコントロールをId名で取得するというものです。画面に配置したコントロールはResouce.Idで管理されているので、ここからIdを指定して取り出しているというわけです。
続いてイベントの作成ですが、btnM.Clickとしている部分です。delegateを使用した記述となっています。このイベントの中ではtxtVのTextプロパティに「こんにちは」の文字列を設定していますでの、ボタンがクリックされるとTextViewには「こんにちは」の文字が表示されます。
実行例を以下に示します。
関連記事
[Visual Studio][Xamarin][Android] UI部品を配置する
コメント