前言
大部份的Android 都具有實體或虛擬的Back鍵. 因此在處理多頁面應用程式時, 與先前所介紹的iOS Navigation controller 比較起來會簡單許多.
1. 開啟Visual Studio 並新增Android Application 專案並命名為Lab4-MultiScreen
2. 在Layout資料夾中新增Second.axml
在Second.axml 中拖放1個TextView並標示此為第2個Activity
2. 在專案底下新增一個SecondActivity.cs. 在OnCreate事件中撰寫以下程式碼:
1 |
SetContentView(Resource.Layout.Second); |
3. 開啟Activity1.cs, 在class name的地方按滑鼠右鍵=>重構=>重新命名. 將類別名稱改為FirstActivity. 記得在方案總管中的檔名也一併改為FirstActivity.cs
4. 開啟Main.axml, 在畫面中放置1個Button並指定Text屬性值為”Load Second Activity”並將id 的屬性值變更為”@+id/ShowSecond”
5. 開啟FirstActivity.cs, 在OnCreate事件中撰寫以下程式碼:
03 |
SetContentView(Resource.Layout.Main); |
05 |
//宣告並取得按鈕物件, 並在按鈕的click事件處理中載入SecondActivity |
07 |
Button button = FindViewById< Button >(Resource.Id.showSecond); |
09 |
button.Click += delegate |
Button的click處理函式中, 我們將使用3種方法來載入SecondActivity.
- 方法一: 使用內建的StartActivity方法, 程式碼如下:
1 |
//呼叫其他Activity的第一種方法(隱含的建立Intent) |
3 |
StartActivity( typeof (SecondActivity)); |
- 方法二: 建立Intent, 然後使用StartActivity載入其他SecondActivity. 程式碼如下:
1 |
//呼叫其他Activity的第二種方法, 建立Intent, 然後使用StartActivity載入其他Activity |
3 |
var second = new Intent( this , typeof (SecondActivity)); |
- 方法三: 建立Intent, 並透過Intent.PutExtra載入Activity並傳入參數. 程式碼如下:
1 |
//使用Intent.PutExtra載入Activity並傳入參數 |
3 |
var second = new Intent( this , typeof (SecondActivity)); |
5 |
second.PutExtra( "FirstData" , "Data from FirstActivity" ); |
上述的3種方式, 第1個跟第2個是一樣的, 使用第1種方式, 會隱含建立一個Intent物件。
6. 執行專案並檢視結果.
7. 透過上述的第3個方法, 可以像QueryString般傳遞參數到下一個Activity. 現在我們開啟SecondActivity.cs. 透過Intent的GetStringExtra方法來取得參數的值. 在Oncreate方法中撰寫以下程式碼:
03 |
SetContentView(Resource.Layout.Second); |
07 |
var label = FindViewById<textview>(Resource.Id.screen2Label); |
09 |
//透過Intent.GetStringExtra取得從前一個Activity所傳來的訊息 |
11 |
label.Text = Intent.GetStringExtra( "FirstData" ) ?? "Data not available" ;</textview> |
在上述程式碼中, 我們透過Intent的GetStringExtra(“參數名稱”)來取得字串型別的參數. 事實上還可以透過類似的方法取得不同型別的參數值. 如下圖所示:
而??陳述式則是用來判斷是否為Null的方便寫法. 若取出的值為Null則顯示後面的字串.
8. 執行專案並檢視結果, 如下圖所示
結語
在本篇文章中, 我們介紹Android 應用程式在多頁面中的切換, 相較於iOS, Android 對於多頁面的處理較為方便. 另外在Android中也提供Tab控制項在多頁面之間進行切換.
最新文章
- css判断不同分辨率显示不同宽度布局实现自适应宽度
- LoadRunner 11 安装步骤
- C# List<;T>;用法
- Class 实现IDisposing方法
- IE6兼容透明背景图
- PC-Lint安装配置与集成到VS2010
- ACM编程技巧--代码片段
- AJAX中的请求方式以及同步异步的区别
- BZOJ 2440: [中山市选2011]完全平方数( 二分答案 + 容斥原理 + 莫比乌斯函数 )
- MapReduce 异常 LongWritable cannot be cast to Text
- Linux目录树详细说明
- sybase 修改用户密码
- 问题(一)---线程池,锁、堆栈和Hashmap相关
- eclipse设置git忽略文件
- ElasticSearch6学习(1)-安装Elasticsearch
- 使用 Google
- C#;DataTable添加列;DataTable转List泛型集合;List泛型集合转DataTable泛型集合;
- 制作DNS字典
- Mac下利用Cordova打包 iOS App以及出现的问题
- html全选和取消全选JS
热门文章
- php 访问用友u8数据
- Tomcat项目部署问题记录
- Centos环境下手动设置-网络参数配置-网络挨排错顺序-设置网卡为上网模式的设定
- Android-GsonUtil-工具类
- TL-WN725N v2.0 树莓派驱动
- spark-streming 中调用spark-sql时过程遇到的问题
- 一键部署react到nginx上
- 【cocos2d-x 手游研发小技巧(3)Android界面分辨率适配方案】
- ClamAV资料链接
- Python3.5 学习四