• [Xamarin] 開啟另外一個Activity 並且帶資料 (转帖)


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

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

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

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

    2013-07-10_121951 

    我們看看今天的範例..

    2013-07-10_194232
    兩個按鈕,第一個按鈕(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; 
            }
        }
    }

    結果:

    Screenshot_2013-07-10-19-51-26
    成功拉是不是沒很難 :)

  • 相关阅读:
    Openstack----学习笔记
    如何往gitlab/github上游贡献代码
    搭建python虚拟环境virtualenv
    YAML格式
    mysql安装
    使用mysql服务实现负载均衡
    tomcat web服务的搭建
    通过SQL查询SQL服务器和客户端IP地址
    验证数字的正则表达式
    C# WinForm控件美化扩展系列之给TextBox加水印
  • 原文地址:https://www.cnblogs.com/whatthehell/p/3444478.html
Copyright © 2020-2023  润新知