自己紹介
初めまして、大学一年生のくぅと言います。 C# と Xamarin が好きです。 まだまだ未熟ですが、色々吸収していきます。
やっていくこと
Xamarin.Android で Intent を使って画面遷移する
方法
普通のAndroidの開発で使うように Intent を利用して画面遷移等を行います。
サンプルコード
画面を遷移するボタンを設置
遷移元の画面に遷移するためのボタンを設置すると、以下のようになると思います。 遷移元の画面を定義してあるファイルはResources/layout/Main.axml に配置してあります。 また、遷移元の画面は、MainActivity.cs というクラスファイルと紐づけてあります。
Main.axml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <Button android:id="@+id/myButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
MainACtivity.cs
using Android.App; using Android.Content; using Android.Widget; using Android.OS; namespace App1.Droid { [Activity (Label = "App1.Droid", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { int count = 1; protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById<Button> (Resource.Id.myButton); button.Click += delegate { var intent = new Intent(this,typeof(Activity1)); StartActivity(intent); }; } } }
遷移先の画面の作成
遷移先の画面は、テキストを表示するだけのシンプルな形にしてあります。 画面定義ファイルは、Resources/layout/layout1.axml です。 画面定義ファイルは一応、Activity1.cs にしてあります。
layout1.axml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:minWidth="25px" android:minHeight="25px"> <TextView android:text="2枚目の画面" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView1" /> </LinearLayout>
Activity1.cs
using Android.App; using Android.OS; namespace App1.Droid { [Activity(Label = "Activity1")] public class Activity1 : Activity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.layout1); } } }
ソースコードのポイント解説
個人的にはまった個所は、Intent クラスのインスタンスを作成するときの第二引数に渡すクラスを.axml の方を渡すと勘違いしていた点です。
Intent の使い方です。
// Intent のインスタンスを作成。この時の第二引数に遷移先のクラス(.csの方)を渡す var intent = new Intent(this,typeof(Activity1)); // StartACtivity メソッドを使いインテントを起動する。 StartActivity(intent);
まとめ
Android での開発と同じようにIntent を使えることが分かった
C#によるiOS、Android、Windowsアプリケーション開発入門 (MSDNプログラミングシリーズ)
- 作者: 増田智明,大西彰
- 出版社/メーカー: 日経BP社
- 発売日: 2014/06/04
- メディア: 単行本
- この商品を含むブログを見る
Creating Mobile Apps with Xamarin.Forms Preview Edition 2 (Developer Reference)
- 作者: Charles Petzold
- 出版社/メーカー: Microsoft Press
- 発売日: 2015/04/11
- メディア: Kindle版
- この商品を含むブログを見る
.NET開発テクノロジ入門2016年版Visual Studio 2015対応版
- 作者: 五十嵐祐貴,生形可奈子,大田一希,古賀慎一,酒井達明,芝村達郎,田淵義人,日本マイクロソフト株式会社井上章
- 出版社/メーカー: 日経BP社
- 発売日: 2016/02/05
- メディア: 単行本
- この商品を含むブログ (2件) を見る