C# で Android開発
Androidアプリ開発パーフェクトマスター[最新版] (Perfect Master)
- 作者: 金城俊哉
- 出版社/メーカー: 秀和システム
- 発売日: 2016/11/29
- メディア: 単行本
- この商品を含むブログを見る
Javaではこうだけど、Xamarinではこう、という正解がわからないので、合っているのか自信がない。エラーにはなってないけど。
7.3.2 直接 setOnClickListener() に匿名クラスを渡す
先の例と同様、setOnClickListener() が分からないので Click イベントに追加する。
using Android.App; using Android.Widget; using Android.OS; namespace ManyButton2 { [Activity(Label = "ManyButton2", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView (Resource.Layout.Main); var tv = FindViewById<TextView>(Resource.Id.textView); FindViewById<Button>(Resource.Id.button1).Click += (o, e) => { tv.Text = this.Resources.GetString(Resource.String.Btn1Tap); }; FindViewById<Button>(Resource.Id.button2).Click += (o, e) => { tv.Text = this.Resources.GetString(Resource.String.Btn2Tap); }; FindViewById<Button>(Resource.Id.button3).Click += (o, e) => { tv.Text = this.Resources.GetString(Resource.String.Btn3Tap); }; } } }
7.4.1 Java プログラムでビューを配置する
Java でいう LinearLayout.VERTICAL は Orientation.Vertical でよいのかな?
using Android.App; using Android.Widget; using Android.OS; using Android.Views; using static Android.Views.ViewGroup; namespace LayoutCSharp { [Activity(Label = "LayoutCSharp", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity, View.IOnClickListener { private TextView textView; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); var testLayout = new LinearLayout(Application); testLayout.LayoutParameters = new LayoutParams( LayoutParams.WrapContent, LayoutParams.WrapContent ); testLayout.Orientation = Orientation.Vertical; SetContentView(testLayout); textView = new TextView(this); textView.Text = ""; textView.LayoutParameters = new LayoutParams( LayoutParams.WrapContent, LayoutParams.WrapContent ); testLayout.AddView(textView); var button = new Button(this); button.Text = "Button"; button.LayoutParameters = new LayoutParams( LayoutParams.WrapContent, LayoutParams.WrapContent ); button.SetOnClickListener(this); testLayout.AddView(button); } public void OnClick(View v) { textView.Text = "Button Pushed."; } } }