C# で Android開発

7.2 まで。
これ以降もJavaとの差でちょいちょい躓きそうな確かな予感。


7.2.2 ボタンタップでメッセージを表示するアプリを作る

Javaインターフェイス絡みで今後も悩みそう。

stackoverflow.com

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

namespace ButtonTap
{
    [Activity(Label = "ButtonTap", 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);
            var btn = FindViewById<Button>(Resource.Id.button);
            btn.Click += (o, e) => { tv.Text = "Button Pushed"; };
        }
    }
}

f:id:yossk:20170402214213p:plain

7.2.5 レイアウトファイルにメソッド呼出を埋め込む

一つ一つ Stack Overflow だよりになってる・・・。

stackoverflow.com

参照で Java.interop と Mono.Android.Export が必要。

f:id:yossk:20170402214400j:plain

コレやるくらいなら 7.2.2 形式でやった方が絶対に良いと思う。

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

namespace ButtonTap
{
    [Activity(Label = "ButtonTap", 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);
            var btn = FindViewById<Button>(Resource.Id.button);
            btn.Click += (o, e) => { tv.Text = "Button Pushed"; };
        }

        
        [Export("OnClickMsg")]
        public void OnClickMsg(View v)
        {
            var tv = FindViewById<TextView>(Resource.Id.textView);
            tv.Text = "Button Pushed Part2";
        }
    }
}
    <Button
        android:onClick="OnClickMsg"
        android:text="@string/Button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/buttonXml" />

f:id:yossk:20170402214616p:plain

特に躓くこともなかったので、strings.xml ファイルを使ってテキストをコントロールをする、の画像だけ。
f:id:yossk:20170402214735p:plain