C# で Android開発

7.3.1 のみ。わかりやすくて読みやすい本だと思う。


7.3.1 どのボタンがクリックされたか検出する

strings.xml の値を取得する部分がJavaと違うので注意。

using Android.App;
using Android.Widget;
using Android.OS;
using Android.Views;

namespace ManyButton
{
    [Activity(Label = "ManyButton", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity, View.IOnClickListener
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView (Resource.Layout.Main);

            FindViewById<Button>(Resource.Id.button1).SetOnClickListener(this);
            FindViewById<Button>(Resource.Id.button2).SetOnClickListener(this);
            FindViewById<Button>(Resource.Id.button3).SetOnClickListener(this);
        }

        private void OnClickButton1()
        {
            FindViewById<TextView>(Resource.Id.textView).Text = this.Resources.GetString(Resource.String.Btn1Tap);
        }

        private void OnClickButton2()
        {
            FindViewById<TextView>(Resource.Id.textView).Text = this.Resources.GetString(Resource.String.Btn2Tap);
        }

        private void OnClickButton3()
        {
            FindViewById<TextView>(Resource.Id.textView).Text = this.Resources.GetString(Resource.String.Btn3Tap);
        }

        public void OnClick(View v)
        {
            switch(v.Id)
            {
                case Resource.Id.button1:
                    OnClickButton1();
                    break;
                case Resource.Id.button2:
                    OnClickButton2();
                    break;
                case Resource.Id.button3:
                    OnClickButton3();
                    break;
            }
        }
    }
}

f:id:yossk:20170404233626p:plain