原文链接:Hello, Android Multiscreen Quickstart.

译文链接:Hello,Android Multiscreen快速上手

本部分介绍利用Xamarin.Android处理导航

Hello, Android Multiscreen Quickstart

在指南的第一部分,我们将为Phoneword添加第二个屏幕 —— 关于电话历史的跟踪情况。最终的应用会有第二个屏幕来展示拨打历史。最终界面如下:

下面开始练习。

系统及环境要求

由于本教程将在Hello,Android Quickstart基础上进行操作,你需要完成Hello,Android Quickstart部分内容。如果你想跳过上述步骤,直接进行本文内容,你可以下载现有的Phoneword代码进行演练,相关链接地址如下:

操作演练

在演练中,我们会为 Phoneword 应用添加Call History界面。

1.在Visual Studio中打开 Phoneword 应用项目

2.编辑交互界面。在解决方案中打开Main.axml文件:

3.在 工具箱 中拖动一个 按钮-Button 到设计界面,并将其放置在 拨打-Call 按钮下方:

4.在 属性 面板中,修改按钮的 Id 属性值为 @+id/CallHistoryButton

5.然后将按钮的 Text 属性值设为 @string/callHistory。Android设计器会按照字面上的解释显示。不过我们会进行一些修改来让按钮的文本正确显示:

6.在解决方案管理器中,展开Resources文件夹下的value节点,然后双击字符串资源文件——Strings.xml

7.在Strings.xml文件中添加名为callHistory的字符串,并为其设值,然后保存,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="callHistory">Call History</string>
</resources>

这样Android设计器中,Call History 按钮的文本会更新显示为新设的字符串:

8.在界面选中 Call History 按钮,然后再 属性 面板中找到enabled设置,并将其设置为false将按钮禁用。此操作会导致按钮在设计界面中显示为暗色:

9.现在,为应用添加第二个Activity来为第二个界面提供服务。首先,在解决方案管理器中,右击Phoneword项目,选择 添加-新建项

10.在 新建项 对话框中,选择 Visual C#-Activity,并将Activity文件名设为CallHistoryActivity.cs

11.用以下的代码替换CallHistoryActivity.cs中的模板代码:

using System;
using System.Collections.Generic;
using Android.App;
using Android.OS;
using Android.Widget;
namespace Phoneword
{
[Activity(Label = "@string/callHistory")]
public class CallHistoryActivity : ListActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Create your application here
var phoneNumbers = Intent.Extras.GetStringArrayList("phone_numbers") ?? new string[0];
this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, phoneNumbers);
}
}
}

在此类中,我们创建了ListActivity,然后用代码编辑它,故此处我们无需为其创建新的布局文件。我们会在原文:Hello, Android Multiscreen Deep Dive中详细讨论。—— 官方文档此处链接指向错误,此处调整

12.在我们的应用中,我们将收集用户在第一个屏幕中拨打的电话号码,然后将其传递到第二个屏幕。其中,我们将电话号码通过字符串列表存储。要使用列表,我们需要在MainActivity类上面添加如下引用:

using System.Collections.Generic;

接下来,我们创建空列表——用于存储电话号码。MainActivity类代码将类似如下代码:

[Activity(Label = "Phoneword", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
static readonly List<string> phoneNumbers = new List<string>();
...// OnCreate, etc.
}

13.下面,我们将 Call History 按钮与代码连接上。在MainActivity类中,添加如下注册和链接代码:

Button callHistoryButton = FindViewById<Button> (Resource.Id.CallHistoryButton);
callHistoryButton.Click += (sender, e) =>
{
var intent = new Intent(this, typeof(CallHistoryActivity));
intent.PutStringArrayListExtra("phone_numbers", phoneNumbers);
StartActivity(intent);
};

14.现在,我们扩展 Call 按钮的功能,使得其能够将电话号码添加到列表中,并在用户拨打新号码后启用 Call History按钮。修改弹出确认框中的Neutral Button的反应操作代码:

callDialog.SetNeutralButton("Call", delegate
{
// add dialed number to list of called numbers.
phoneNumbers.Add(translatedNumber);
// enable the Call History button
callHistoryButton.Enabled = true;
// Create intent to dial phone
var callIntent = new Intent(Intent.ActionCall);
callIntent.SetData(Android.Net.Uri.Parse("tel:" + translatedNumber));
StartActivity(callIntent);
});

保存并生成应用——确保没有错误。

15.将应用部署到模拟器或设备上。下图为Phoneword运行的演示图片:

至此,第一个Xamarin.Android多屏幕应用程序创建完成。下面将对此进行深入介绍理解:原文:Hello, Android Multiscreen Deep Dive


译:奇葩史

[译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手的更多相关文章

  1. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解

    原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...

  2. [译]:Xamarin.Android开发入门——Hello,Android深入理解

    返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...

  3. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  4. 教我徒弟Android开发入门(一)

    前言: 这个系列的教程是为我徒弟准备的,也适合还不懂java但是想学android开发的小白们~ 本系列是在Android Studio的环境下运行,默认大家的开发环境都是配置好了的 没有配置好的同学 ...

  5. Android开发入门经典【申明:来源于网络】

    Android开发入门经典[申明:来源于网络] 地址:http://wenku.baidu.com/view/6e7634050740be1e650e9a7b.html?re=view

  6. Android开发入门要点记录:四大组件

    cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...

  7. Android开发入门

    教我徒弟Android开发入门(一) 教我徒弟Android开发入门(二) 教我徒弟Android开发入门(三) 出处:http://www.cnblogs.com/kexing/tag/Androi ...

  8. Android开发周报:Android L默认加密用户数据

    Android开发周报:Android L默认加密用户数据 新闻 <iCloud前车之鉴,Android L默认开启加密功能>:iCloud 艳照风波再起,第二波女星照片流出,大量女星的裸 ...

  9. Android开发工程师文集-Android知识点讲解

    前言 大家好,给大家带来Android开发工程师文集-Android知识点讲解的概述,希望你们喜欢 WebView讲解 一般通过Intent调用系统的浏览器: Uri uri = Uri.parse( ...

随机推荐

  1. eclipse 快捷键大全(转载)

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...

  2. Java学习笔记-按值传递

    参数的值传递 实参必须与方法中次你故意的参数在次序和数量上匹配,在类型上兼容.类型兼容是指不需要经过显式的类型转换,实参的值就可以传递给形参.如将int型的实参值传递给double型形参. 当调用方法 ...

  3. thinkphp 3.2 linux二级目录安装

    详解:http://document.thinkphp.cn/manual_3_2.html#url_rewrite 注意:linux系统对大小写敏感 服务器系统:linux (阿里云服务器) thi ...

  4. 4. web前端开发分享-css,js工具篇

    web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...

  5. Excel—使用条件格式标注今日值班者

    如下图所示值班表: Step1:选中A2:G2,调出条件格式,在条件格式中,使用公式确定单元格. Step2: 在公式栏中填入以下公式: =TEXT(TODAY(),"aaaa") ...

  6. 【IOS】模仿windowsphone列表索引控件YFMetroListBox

    有没有觉得UITableView自带的右侧索引很难用,我一直觉得WindowsPhone中的列表索引非常好用. 所以呢,我们来实现类似Windows Phone中的列表索引(这就是信仰). 最终实现效 ...

  7. Maven的环境搭建及新建web项目

    第一次接触maven,做一个简单的记录 一.下载maven及环境变量的配置 下载地址 http://maven.apache.org/download.cgi 配置其环境变量  MAVEN_HOME= ...

  8. ubuntu 系统下搭建Java的环境

    1.首先可以使用 java -version来查看自己是否已经搭建了java的环境,如果出现了java的版本号则表示java的环境已经搭建好了!否则则继续下面的步骤进行java环境的搭建 2.进入Or ...

  9. Dom4j解析xml文件

    dom4j是一个Java的XML API,类似于jdom,用来读取的XML文件,由于它是将文件解析完存放在内存当中的,所以不适合解析大的XML文件,但就方便性和性能方面,一定程度要优于JDK中Domc ...

  10. c/c++中关于sizeof、strlen的使用说明

    sizeof: 一般指类型.变量等占用的内存大小(由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小) strlen: c字符串的长度(参数必须是字符型指针 char*,当数组名作 ...