• Visual Studio 跨平台開發實戰(5)


    前言

    大部份的Android 都具有實體或虛擬的Back鍵. 因此在處理多頁面應用程式時, 與先前所介紹的iOS Navigation controller 比較起來會簡單許多.

    1. 開啟Visual Studio 並新增Android Application 專案並命名為Lab4-MultiScreen

    clip_image002

     

    2. 在Layout資料夾中新增Second.axml

    clip_image003

     

    在Second.axml 中拖放1個TextView並標示此為第2個Activity

    clip_image004

     

    2. 在專案底下新增一個SecondActivity.cs. 在OnCreate事件中撰寫以下程式碼:

    1 SetContentView(Resource.Layout.Second);

    3. 開啟Activity1.cs, 在class name的地方按滑鼠右鍵=>重構=>重新命名. 將類別名稱改為FirstActivity. 記得在方案總管中的檔名也一併改為FirstActivity.cs

    clip_image006

     

    4. 開啟Main.axml, 在畫面中放置1個Button並指定Text屬性值為”Load Second Activity”並將id 的屬性值變更為”@+id/ShowSecond”

    5. 開啟FirstActivity.cs, 在OnCreate事件中撰寫以下程式碼:

    01 //載入頁面
    02  
    03 SetContentView(Resource.Layout.Main);
    04  
    05 //宣告並取得按鈕物件, 並在按鈕的click事件處理中載入SecondActivity
    06  
    07 Button button = FindViewById< Button >(Resource.Id.showSecond);
    08  
    09 button.Click += delegate
    10  
    11 {…….按鈕處理函式}

    Button的click處理函式中, 我們將使用3種方法來載入SecondActivity.

    • 方法一: 使用內建的StartActivity方法, 程式碼如下:
    1 //呼叫其他Activity的第一種方法(隱含的建立Intent)
    2  
    3 StartActivity(typeof(SecondActivity));
    • 方法二: 建立Intent, 然後使用StartActivity載入其他SecondActivity. 程式碼如下:
    1 //呼叫其他Activity的第二種方法, 建立Intent, 然後使用StartActivity載入其他Activity
    2  
    3 var second = new Intent(this, typeof(SecondActivity));
    4  
    5 StartActivity(second);
    • 方法三: 建立Intent, 並透過Intent.PutExtra載入Activity並傳入參數. 程式碼如下:
    1 //使用Intent.PutExtra載入Activity並傳入參數
    2  
    3 var second = new Intent(this, typeof(SecondActivity));
    4  
    5 second.PutExtra("FirstData", "Data from FirstActivity");
    6  
    7 StartActivity(second);

    上述的3種方式, 第1個跟第2個是一樣的, 使用第1種方式, 會隱含建立一個Intent物件。

    6. 執行專案並檢視結果.

    7. 透過上述的第3個方法, 可以像QueryString般傳遞參數到下一個Activity. 現在我們開啟SecondActivity.cs. 透過Intent的GetStringExtra方法來取得參數的值. 在Oncreate方法中撰寫以下程式碼:

    01 //載入頁面
    02  
    03 SetContentView(Resource.Layout.Second);
    04  
    05 //宣告並取得TextView物件
    06  
    07 var label = FindViewById<textview>(Resource.Id.screen2Label);
    08  
    09 //透過Intent.GetStringExtra取得從前一個Activity所傳來的訊息
    10  
    11 label.Text = Intent.GetStringExtra("FirstData") ?? "Data not available";</textview>

    在上述程式碼中, 我們透過Intent的GetStringExtra(“參數名稱”)來取得字串型別的參數. 事實上還可以透過類似的方法取得不同型別的參數值. 如下圖所示:

    clip_image007

     

    而??陳述式則是用來判斷是否為Null的方便寫法. 若取出的值為Null則顯示後面的字串.

    8. 執行專案並檢視結果, 如下圖所示

    clip_image009

     

    結語

    在本篇文章中, 我們介紹Android 應用程式在多頁面中的切換, 相較於iOS, Android 對於多頁面的處理較為方便. 另外在Android中也提供Tab控制項在多頁面之間進行切換.

  • 相关阅读:
    mysql的length与char_length的区别
    case when 多个条件 以及case when 权重排序
    ogitor下载地址
    简单单例模式
    求切线和次法线
    Alpha混合物体的深度排序
    C++对齐问题
    Computing Tangent Space Basis Vectors for an Arbitrary Mesh
    .NET三层架构简析
    DaGridView导出Excel
  • 原文地址:https://www.cnblogs.com/whatthehell/p/3444131.html
Copyright © 2020-2023  润新知