首页 > 代码库 > 第一个Xamarin的 Android 应用程序!

第一个Xamarin的 Android 应用程序!

你好,安卓

Xamarin的工作室

Xamarin的应用程序图标和启动屏幕
  • 脱机使用PDF格式:
介绍与Xamarin的Android开发
  • 示例代码:
开始使用应用程序的探险家  

在这个由两部分组成的指南,我们建立我们的第一次Xamarin的。 Android应用程序使用Xamarin的工作室或Visual Studio和发展的理解与Xamarin的Android应用程序开发的基本原理。 一路上我们将介绍工具,概念,构建和部署Xamarin的所需的步骤。 Android应用程序。

你好,Android快速入门

在这个场景,我们创建一个应用程序,将用户输入的一个字母数字的电话号码转换为一个数字电话号码,,然后调用这个数字。 最终的应用程序看起来像这样:

技术分享 技术分享

让我们开始吧!

加速Android模拟器

:本指南是一个跨平台开发系列的一部分。 我们接你好,iOS预排离开和Android应用程序添加到一个共同的解决方案。 如果你有兴趣学习iOS和Android,我们建议从你好,iOS指南。 如果你宁愿专注于安卓系统,我们添加了一些步骤来帮助你建立Android-only解决方案。 一旦设置您的解决方案,您可以完成你好,Android和你好,Android新潮的指南。

配置您的模拟器使用硬件加速。 说明

  • 最新版本的OS X山狮以上Xamarin的工作室。
  • 最新版本的Windows 7以上Xamarin的工作室。

集。 Xamarin的。 安卓系统安装 导游。

在我们开始之前,请下载 Windows 7及以上与Visual Studio 2010专业或更高版本。 Xamarin的应用程序图标和启动屏幕

配置模拟器

Android模拟器有几个选项。 标准的安卓 设置仿真器是最简单的,但跑得慢。 Xamarin的建议 你使用的高性能 指南。 Xamarin的Android的球员 需求 。 如果你不使用Xamarin的Android的球员,你应该 这个预排假设Xamarin的最新版本。 安装和运行在Android平台的选择。 Xamarin的安装指南。 Android,参考 请注意

可选的设置——Android应用程序

如果你遵循这些步骤没有完成了 你好,iOS 预排。 如果你已经配置 Phoneword 解决方案,你可以继续下面的介绍。

  1. 让我们启动Visual Studio,这将打开启动屏幕:

    技术分享

  2. 点击 开始>新项目 创建一个新的解决方案:

    技术分享

  3. 在 新项目 对话框中,单击 其他项目类型> Visual Studio解决方案 。 选择 空白的解决方案 模板。 名新解决方案 Phoneword :

    技术分享

现在我们已经配置我们的解决方案,我们可以继续介绍我们的解决方案添加一个Android应用程序。

预排

    1. Phoneword 解决方案如果不开放了。 在 (左边的区域),打开右边的灰色的齿轮图标 (右边的区域),右键单击 添加>新项目… 从 解决方案和选择 对话框中,让我们选择

      技术分享

    2. 在 接下来,让我们扩大 Visual c# > Android 并选择 添加新项目 模板。 我们将新项目名称

      技术分享

    3. 在设计表面和按下 按钮 打开它的Android设计师。 这是我们的布局文件 屏幕: 接下来,让我们扩大 资源 布局 文本

      技术分享

    4. 删除 文本(大) 文本 的 财产的 工具箱 (左边的区域),输入“ 文本(大) “在搜索字段并拖动 控制在设计表面(区域中心): 控制在设计表面(区域中心):

      技术分享

    5. 与 文本(大) 控制选择表面上的设计,我们可以使用 属性 面板中改变 文本 财产的 文本(大) 控制” 输入一个Phoneword: ”:

      技术分享

    6. 接下来,让我们拖 纯文本 控制的 工具箱 设计表面和下面 文本(大) 控制:

      技术分享

    7. 与 纯文本 控制选择表面上的设计,我们可以使用 属性 面板中改变 ID 财产的 纯文本 控制 @ + id / PhoneNumberText 和改变 文本 属性” 1 - 855 - xamarin的 ”:

      技术分享

    8. 让我们把 按钮 控制的 工具箱 设计表面和下面 纯文本 控制:

      技术分享

    9. 与 按钮 选择表面上的设计,我们可以使用 属性 面板中改变 ID 财产的 按钮 来 @ + id / TranslateButton 和改变 文本 属性” 翻译 ”:

       

      技术分享

    10. 接下来,让我们拖到另一个 按钮 控制的 工具箱 设计表面和下面 按钮 TranslateButton

      技术分享

    11. 控制选择表面上的设计,我们可以使用 改变 解决方案垫 窗格 项目 按钮 和改变 项目通过点击旁边的灰色的齿轮图标 与 文本 调用 ”:

       

      技术分享

      让我们拯救我们的工作按 Ctrl + S 现在,让我们添加一些代码翻译电话号码从字母数字到数字。 我们将添加一个新文件

    12. Phoneword_Droid 在 解决方案资源管理器 PhoneTranslator 窗格中,选择 添加>新项目… :

      技术分享

    13. 项目 添加新文件 对话框中,让我们选择 Visual c#代码> >类 和名称的新文件 PhoneTranslator.cs :

      技术分享

    14. 这将创建一个新的空c#类。 让我们消除所有的模板代码,代之以以下代码:










      10 
      11 
      12 
      13 
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54 
      using System.Text;using System;namespace Core{    public static class PhonewordTranslator    {        public static string ToNumber(string raw)        {            if (string.IsNullOrWhiteSpace(raw))                return "";            else                raw = raw.ToUpperInvariant();            var newNumber = new StringBuilder();            foreach (var c in raw)            {                if (" -0123456789".Contains(c))                    newNumber.Append(c);                else {                    var result = TranslateToNumber(c);                    if (result != null)                        newNumber.Append(result);                }                // otherwise we‘ve skipped a non-numeric char            }            return newNumber.ToString();        }        static bool Contains (this string keyString, char c)        {            return keyString.IndexOf(c) >= 0;        }        static int? TranslateToNumber(char c)        {            if ("ABC".Contains(c))                return 2;            else if ("DEF".Contains(c))                return 3;            else if ("GHI".Contains(c))                return 4;            else if ("JKL".Contains(c))                return 5;            else if ("MNO".Contains(c))                return 6;            else if ("PQRS".Contains(c))                return 7;            else if ("TUV".Contains(c))                return 8;            else if ("WXYZ".Contains(c))                return 9;            return null;        }    }}

      Ctrl + S 保存 文件,点击 文件>保存 (或按 保存您的更改

    15. 接下来我们将添加代码来连接用户界面。 让我们支持代码添加到 MainActivity 类。 双击 MainActivity.cs 在 首先连接了 解决方案资源管理器

      技术分享

    16. MainActivity TranslateButton 。 在 类,找到 oncreate 方法。 我们将添加按钮代码内部 oncreate ,低于 base.OnCreate(包) SetContentView(Resource.Layout.Main) 调用。 因此,删除模板代码 oncreate 方法类似于下面的代码:










      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      22 
      23 
      24 
      25 
      using System;using Android.App;using Android.Content;using Android.Runtime;using Android.Views;using Android.Widget;using Android.OS;namespace Phoneword_Droid{    [Activity (Label = "Phoneword_Droid", MainLauncher = true)]    public class MainActivity : Activity    {        protected override void OnCreate (Bundle bundle)        {            base.OnCreate (bundle);            // Set our view from the "main" layout resource            SetContentView (Resource.Layout.Main);            // Our code will go here        }    }}
    17. 接下来,我们需要控制我们的引用在布局文件中创建使用Android的设计师。 在添加以下代码 oncreate 方法:




      // Get our UI controls from the loaded layoutEditText phoneNumberText = FindViewById<EditText>(Resource.Id.PhoneNumberText);Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton);Button callButton = FindViewById<Button>(Resource.Id.CallButton);
    18. 现在让我们添加代码来响应用户按第一个按钮时,我们命名 TranslateButton 。 下面添加以下代码内部控制定义 oncreate 方法:










      10 
      11 
      12 
      13 
      14 
      15 
      16 
      17 
      18 
      19 
      20 
      21 
      // Disable the "Call" buttoncallButton.Enabled = false;// Add code to translate numberstring translatedNumber = string.Empty;translateButton.Click += (object sender, EventArgs e) =>    {        // Translate user’s alphanumeric phone number to numeric        translatedNumber = Core.PhonewordTranslator.ToNumber(phoneNumberText.Text);        if (String.IsNullOrWhiteSpace(translatedNumber))        {            callButton.Text = "Call";            callButton.Enabled = false;        }        else        {            callButton.Text = "Call " + translatedNumber;            callButton.Enabled = true;        }   };
    19. 接下来让我们添加代码来响应用户迫切的第二个按钮时,我们命名 CallButton 。 我们将以下代码下面的代码 TranslateButton :










      10 
      11 
      12 
      13 

      安卓系统清单 
      文件。 通过双击打开安卓清单 
      callButton.Click += (object sender, EventArgs e) =>{    // On "Call" button click, try to dial phone number.    var callDialog = new AlertDialog.Builder(this);    callDialog.SetMessage("Call " + translatedNumber + "?");    callDialog.SetNeutralButton("Call", delegate {           // Create intent to dial phone           var callIntent = new Intent(Intent.ActionCall);           callIntent.SetData(Android.Net.Uri.Parse("tel:" + translatedNumber));           StartActivity(callIntent);       });    callDialog.SetNegativeButton("Cancel", delegate { });    // Show the alert dialog to the user and wait for response.    callDialog.Show();};
    20. 许可: 打开它: ,检查 Phoneword_Droid 在 成功。 解决方案资源管理器 。 选择Android清单节点:

      技术分享

      下 属性 构建>构建所有 构建>重建解决方案 让我们拯救我们的工作,然后通过选择构建应用程序

      技术分享

    21. 让我们拯救我们的工作,然后通过选择重建应用程序 或按 CTRL-SHIFT-B 

      技术分享

      如果有错误,我们可以通过前面的步骤和纠正任何错误,直到应用程序构建

    22. 我们现在有一个工作应用程序和它的时间添加收尾工作! 让我们开始通过编辑 标签 ”: 为我们的

      的顶部 MainActivity 类,改变 标签 成功。 Phoneword 标签

      )。 如果我们的应用程序编译,我们将得到一条成功消息在左下角的Visual Studio: 
      MainActivity 
      。 的 


      和删除现有的 

      文件夹下 
      namespace Phoneword_Droid{    [Activity (Label = "Phoneword", MainLauncher = true)]    public class MainActivity : Activity    {        ...    }}
    23. 你可以设置应用程序名称和图标在Android清单:

      技术分享

      让我们开始通过改变应用程序的名字“Phoneword”:

      技术分享

    24. 接下来,让我们来设置应用程序图标。 首先,下载 Xamarin的应用程序图标设置 。 接下来,扩大 可拉的 其 通过右键单击它并选择 文件夹中。 选择 从选择对话框中,让我们浏览目录并打开解压Xamarin的应用程序图标

      技术分享

      可拉的 文件夹并选择

      技术分享

    25. 文件夹下 和删除现有的 可拉的 :

      技术分享

    26. 当对话框出现时,点击 添加>现有项目…… 删除 对话框中,选择 

      技术分享

    27. 可拉的- * 文件夹 @drawable /图标

      从 文件夹:

      技术分享

      Visual Studio中的文件夹 应用程序图标 这些文件夹现在所示您的项目的一部分 面板: 到项目中。 这些文件夹图标的提供不同的决议,呈现不同的设备有不同的屏幕上正确的密度。

      技术分享

      解决方案资源管理器 接下来,让我们添加其余的Xamarin的应用程序图标 :

      技术分享

    28. 项目作为你的创业项目,右键单击项目 集 从 应用程序图标 :

      技术分享

    29. 设置为启动项目 你好,iOS Xamarin的Android的球员 并选择

      角落的IDE: 的 这个截图所示,我们已经选择了 应用程序 Phoneword_Droid 右键单击项目作为你的创业项目 如果你工作完成后通过本指南Phoneword_Droid 项目 解决方案资源管理器 设置说明。

      技术分享

Xamarin的虚拟设备运行Android的球员。 最后,我们可以测试我们的应用程序被部署到一个Android模拟器。 如果你还没有配置模拟器,请参阅 节点的 属性 。 下 编译使用Android版本: ,选择一个API水平等于或小于模拟器您想要使用的API级别。 选择的模拟器 目标Android设备工具栏上的下拉菜单。 在这个例子中,我们使用 MonoForAndroid_API_10 模拟器,我们编译该项目使用API级别10:

技术分享

  1. 点击 开始 启动模拟器,并部署应用程序。 下面的截图说明了Phoneword模拟器中运行的应用程序。 在一些模拟器,您可能需要点击按钮或回家 菜单 按钮查看运行的应用程序。 单击 翻译 按钮更新的文本 调用 按钮,点击 调用 Xamarin的见解

    技术分享

    技术分享

    在应用程序列表中,您可以看到Phoneword与前面配置的图标显示应用程序:

    技术分享

xamarin.forms 祝贺你完成你的第一个Xamarin的。 Android应用程序! 现在是时候解剖我们刚刚学到的的工具和技巧 Xamarin的工作室

第一个Xamarin的 Android 应用程序!