「Xamarin.Androidでレイアウトにイベントを書く」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「 Xamarin.Androidのサンプルをググると、 以下のようなレイアウトにあるイベント設定を使わずにラムダ式で書くサンプルをよく見…」)
 
1行目: 1行目:
  
Xamarin.Androidのサンプルをググると、
+
Xamarin.Androidのサンプルをググると、以下のようなレイアウトにあるイベント設定を使わずにラムダ式で書くサンプルをよく見かける。
以下のようなレイアウトにあるイベント設定を使わずにラムダ式で書くサンプルをよく見かける。
 
 
<source lang="csharp">
 
<source lang="csharp">
 
var button = FindViewById<Button> (Resource.Id.button1);
 
var button = FindViewById<Button> (Resource.Id.button1);
9行目: 8行目:
 
</source>
 
</source>
  
一方、[[Android Studio]]の人たちのサンプルはほぼレイアウトでイベント設定をしている。
+
 
昔ながらのUI編集画面でイベント発生時の飛び先メソッドを設定して、[[ソースコード]]にそのイベントを受信するメソッドを用意する方式だ。
+
一方、[[Android Studio]]の人たちのサンプルはほぼレイアウトでイベント設定をしている。昔ながらのUI編集画面でイベント発生時の飛び先メソッドを設定して、[[ソースコード]]にそのイベントを受信するメソッドを用意する方式だ。
  
 
これをXamarin.Androidでやろうとすると一手間かかる。
 
これをXamarin.Androidでやろうとすると一手間かかる。
  
== 参照を追加する ==
+
==参照を追加する==
参照に「Mono.Android.Export」を追加する。
+
参照に「Mono.Android.Export」を追加する。これ重要。
 +
[[ファイル:Xamarin.Android-Layout-Event.png|なし|サムネイル|640x640ピクセル]]
 +
<br />
  
== レイアウトでイベントを設定する ==
+
==レイアウトでイベントを設定する==
レイアウトにButtonを貼り、onClickイベントを設定する。
+
レイアウトを開き、Buttonを貼り、onClickイベントを送信するメソッドを設定する。
 
<source lang="xml">
 
<source lang="xml">
 
<Button
 
<Button
25行目: 26行目:
 
</source>
 
</source>
  
== アクティビティでイベントを受ける ==
+
==アクティビティでイベントを受ける==
 
アクティビティにonClickイベントの受信するメソッドを作る。
 
アクティビティにonClickイベントの受信するメソッドを作る。
 
<source lang="csharp">
 
<source lang="csharp">
35行目: 36行目:
 
</source>
 
</source>
  
== 関連項目 ==
+
 
 +
おわり
 +
<br />
 +
==関連項目==
  
 
[[category: Xamarin.Android]]
 
[[category: Xamarin.Android]]

2020年4月3日 (金) 08:17時点における版

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


おわり

関連項目