前言
大部份的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 = newIntent(this,typeof(SecondActivity)); |
- 方法三: 建立Intent, 并通过Intent.PutExtra载入Activity并传入参数. 代码如下:
1 |
//使用Intent.PutExtra载入Activity并传入参数 |
3 |
var second = newIntent(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(Resource.Id.screen2Label); |
09 |
//通过Intent.GetStringExtra取得从前一个Activity所传来的讯息 |
11 |
label.Text = Intent.GetStringExtra("FirstData") ??"Data not available"; |
在上述代码中, 我们通过Intent的GetStringExtra(“参数名称”)来取得字串型別的参数. 事实上还可以通过类似的方法取得不同型別的参数值. 如下图所示:
而??陈述式则是用来判断是否为Null的方便写法. 若取出的值为Null则显示后面的字串.
8. 执行专案并检视结果, 如下图所示
结语
在本篇文章中, 我们介绍Android 应用程序在多页面中的切换, 相较于iOS, Android 对于多页面的处理较为方便. 另外在Android中也提供Tab控制项在多页面之间进行切换.
- Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发
原文 Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发 前言 大部份的Android 都具有实体或虚拟的Back键. 因此在处理多页面应用程式时 ...
- Visual Studio跨平台开发实战(4) - Xamarin Android基本控制项介绍
原文 Visual Studio跨平台开发实战(4) - Xamarin Android基本控制项介绍 前言 不同于iOS,Xamarin 在Visual Studio中针对Android,可以直接设 ...
- Visual Studio跨平台开发实战(1) - Hello Xamarin!
原文 Visual Studio跨平台开发实战(1) - Hello Xamarin! 前言 应用程式发展的脚步, 从来没有停过. 从早期的Windows 应用程式, 到网路时代的web 应用程式, ...
- Visual Studio跨平台开发(1):Hello Xamarin!
前言 应用程序发展的脚步, 从来没有停过. 从早期的Windows 应用程序, 到网络时代的web 应用程序, 再到近几年相当盛行的行动装置应用程序(Mobile Application), 身为C# ...
- Visual Studio跨平台开发Xamarin
台湾微软的一系列Visual Studio跨平台开发Xamarin的资料,上面还有视频.具体参看 http://www.microsoft.com/taiwan/newsletter/library/ ...
- Visual Studio跨平台开发实战(3) - Xamarin iOS多页面应用程式开发
原文 Visual Studio跨平台开发实战(3) - Xamarin iOS多页面应用程式开发 前言 在前一篇教学中, 我们学会如何使用Visual Studio 搭配Xcode 进行iOS基本控 ...
- Visual Studio跨平台开发实战(2) - Xamarin.iOS基本控制项介绍
原文 Visual Studio跨平台开发实战(2) - Xamarin.iOS基本控制项介绍 前言 在上一篇文章中, 我们介绍了Xamarin 以及简单的HelloWorld范例, 这次我们针对iO ...
- Visual Studio 跨平台開發實戰(1) - Hello Xamarin! (转帖)
前言 應用程式發展的腳步, 從來沒有停過. 從早期的Windows 應用程式, 到網路時代的web 應用程式, 再到近幾年相當盛行的行動裝置應用程式(Mobile Application), 身為C# ...
- Visual Studio 2017启动x86的Android模拟器失败
Visual Studio 2017启动x86的Android模拟器失败 Visual Studio 2017默认提供多个Android模拟器.其中,x86模拟器运行较快.但是由于和Hyper-V服 ...
随机推荐
- android stadio open recent 在同一窗口打开
Android staido 有一个功能是open recent ,默认是下面这样的: 就出来一个框,给你选择,是在新的窗口打开,还是在当前窗口打开.如果你选了当前窗口,并且点了Remember,do ...
- HDFS写数据和读数据流程
HDFS数据存储 HDFS client上传数据到HDFS时,首先,在本地缓存数据,当数据达到一个block大小时.请求NameNode分配一个block. NameNode会把block所在的Dat ...
- Postman-简单使用(1)
Postman-简单使用(1) Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins Postman功能(https://www.getpostman.com/f ...
- elasticsearch安装教程
目录 1 java8 环境 2 安装elasticsearch 3 安装kibana 4. 单服务器部署多个节点 参考: 1 java8 环境 elasticsearch需要安装java 8 环境,配 ...
- 剑指Offer - 九度1522 - 包含min函数的栈
剑指Offer - 九度1522 - 包含min函数的栈2013-12-01 23:44 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测 ...
- 《Cracking the Coding Interview》——第3章:栈和队列——题目1
2014-03-18 03:19 题目:用一个数组实现3个栈. 解法: 首先我想过让三个栈动态决定长度.要么左右各一个向中间靠拢,要么三个穿插着,后来都觉得实现起来太复杂,而且思路总有各种功能缺陷,会 ...
- postman导出excel出现response
https://jingyan.baidu.com/article/915fc414559b4351394b2084.html
- rabbitmq之rpc
环境:windows或者Linux,python3.6,rabbitmq3.5要求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hos ...
- 孤荷凌寒自学python第十一天初识Python的字典类
孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...
- ssh 免交互登录 ,远程执行命令脚本。
##免交互SSH登录auto_login_ssh () { expect -c "set timeout -1; spawn -noecho ssh -o ...