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

提供: MonoBook
2020年4月3日 (金) 08:13時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「 Xamarin.Androidのサンプルをググると、 以下のようなレイアウトにあるイベント設定を使わずにラムダ式で書くサンプルをよく見…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Xamarin.Androidのサンプルをググると、 以下のようなレイアウトにあるイベント設定を使わずにラムダ式で書くサンプルをよく見かける。

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

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

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

参照を追加する

参照に「Mono.Android.Export」を追加する。

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

レイアウトにButtonを貼り、onClickイベントを設定する。

<Button
    android:onClick="onButtonClicked"
/>

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

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

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

関連項目