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

提供: MonoBook
ナビゲーションに移動 検索に移動

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");
}


おわり

関連項目[編集 | ソースを編集]