Xamarin.Androidでレイアウトにイベントを書く

提供: MonoBook
2020年4月3日 (金) 08:17時点におけるAdministrator (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Xamarin.Androidのサンプルをググると、以下のようなラムダ式で書くサンプルをよく見かける。

var button = FindViewById<Button> (Resource.Id.button1);
button.Click += (s,e) => {
    Console.WriteLine();
};


一方、Android Studioの人たちのサンプルはほぼレイアウトでイベント設定をしている。昔ながらのUI編集画面でイベント発生時の飛び先メソッドを設定して、ソースコードにそのイベントを受信するメソッドを用意する方式だ。

これをXamarin.Androidでやろうとすると一手間かかる。

参照を追加する

参照に「Mono.Android.Export」を追加する。これ重要。

Xamarin.Android-Layout-Event.png


レイアウトでイベントを設定する

レイアウトを開き、Buttonを貼り、onClickイベントを送信するメソッドを設定する。

<Button
    android:onClick="onButtonClicked"
/>

アクティビティでイベントを受ける

アクティビティにonClickイベントの受信するメソッドを作る。

[Java.Interop.Export(nameof(onButtonClicked))]
public void onButtonClicked(View button)
{
    Console.WriteLine("click");
}


おわり

関連項目