每隻App是透過許多畫面所組成的,當然可能主畫面之外,都會有許多其他的頁面

再Android 設計中畫面會有配合的Activity 當然在這之前,最好事先了解一下,Android 關於生命週期的規劃

關於Activity 的生命週期可以參考這篇

http://docs.xamarin.com/guides/android/application_fundamentals/activity_lifecycle

我們看看今天的範例..


兩個按鈕,第一個按鈕(btn1) 按下後,會呼叫起Child1Activity

這邊不難,直接看程式

var btn1 = FindViewById<Button>(Resource.Id.btn1);
btn1.Click += delegate
{
          StartActivity(typeof(Child1Activity));
};

很簡單,如果不需要帶資料給另外一個Activity 直接透過StartActivity 就可以呼叫起來

再來第二個按鈕(btn2) 我們要把Child2Activity給叫起來之外我們必須要把一些資料帶過去

這時候要透過intent (意圖),為什麼會這樣設計呢?!這關係到因為很多時候,在Android 中會有許多Activity會被不只是自己開發的App給叫起

有可能會是系統發給你的,所以都得透過Intent去做處理,其中案例我帶一個key 為 username 值為 donma的資料過去

var btn2 = FindViewById<Button>(Resource.Id.btn2);
btn2.Click += delegate
{
     
    var intentAct2 = new Intent(this, typeof(Child2Activity));
    //將intent 放入username的值為donma 帶過去
    intentAct2.PutExtra("username", "donma");
    StartActivity(intentAct2);
     
};

在Activity 這邊,原本android 是要透過getIntent 取得,但是在Xamarin 直接就可以在 this.Intent 中拿到

Child2Activity.cs:

using Android.App;
using Android.OS;
using Android.Widget;
     
namespace NewActivity
{
    [Activity(Label = "My Activity")]
    public class Child2Activity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Child2);
            var username = Intent.GetStringExtra("username") ?? "無資料";
            var tvChild2View = FindViewById<TextView>(Resource.Id.tvChild2View);
     
            tvChild2View.Text = "傳來的資料:" + username; 
        }
    }
}

結果:


成功拉是不是沒很難 :)

更多相关文章

  1. 关于android生命周期那点事
  2. Android之Activity的生命周期和Activity间的跳转和数据传递
  3. Android(安卓)应用程序 生命周期
  4. Fragment、Activity比较——Android碎片介绍
  5. wp7开发第一课:软件生命周期(其一)
  6. 一道面试题引发的对android中context的研究(二)
  7. Android中Activity生命周期
  8. Android(安卓)Architecture Components 之 Lifecycle
  9. Android(安卓)apk动态加载机制的研究(二):资源加载和activity生命周

随机推荐

  1. Android列表实现(1)_数组列表
  2. Android(安卓)SDK无法更新问题
  3. Android 自定义view的写法
  4. 只有安卓才会跳
  5. 超酷的 gankIO 客户端
  6. android 红外
  7. [置顶] android 瀑布流
  8. Android SDCard操作
  9. android 通过HttpPost 调用.Net Wcf
  10. Android(安卓)Service详解(一)---概述