メインメニューを開く

差分

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

1,345 バイト追加, 2020年4月3日 (金) 08:13
ページの作成:「 Xamarin.Androidのサンプルをググると、 以下のようなレイアウトにあるイベント設定を使わずにラムダ式で書くサンプルをよく見…」

Xamarin.Androidのサンプルをググると、
以下のようなレイアウトにあるイベント設定を使わずにラムダ式で書くサンプルをよく見かける。
<source lang="csharp">
var button = FindViewById<Button> (Resource.Id.button1);
button.Click += (s,e) => {
Console.WriteLine();
};
</source>

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

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

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

== レイアウトでイベントを設定する ==
レイアウトにButtonを貼り、onClickイベントを設定する。
<source lang="xml">
<Button
android:onClick="onButtonClicked"
/>
</source>

== アクティビティでイベントを受ける ==
アクティビティにonClickイベントの受信するメソッドを作る。
<source lang="csharp">
[Java.Interop.Export(nameof(onButtonClicked))]
public void onButtonClicked(View button)
{
Console.WriteLine("click");
}
</source>

== 関連項目 ==

[[category: Xamarin.Android]]