Xamarin.Android快速入门

一、准备工作

1.创建一个空的解决方案,并命名为Phoneword

2.右击解决方案 新建-》新建项目 并命名为Phoneword_Droid

二、界面

1.打开Resources文件夹-》layout文件夹双击打开Main.axml

2.然后将会出现下面的界面

3.接着我们选择这个Button并删除(按下Delete),并从左边的工具箱中拖拽一个 Text(Large) 控件到该界面中,如下所示:

4.同时还要通过属性窗口修改Text的值:

5.紧接着拖拽一个Plain Text控件到之前的Text控件下方,并修改Text属性为1-855-XAMARIN。接着拖拽一个Button控件到Plain Text控件下方:

同时修改Button控件的id和text:

6.接着再拖拽一个Button控件到TranslateButton控件下方,并设置该id属性为@+id/CallButton以及Text为Call,最终效果如下:

三、代码

1.右击该项目,添加-》新建项,选择类,并设置类的名称为PhoneTranslator,然后在其中写入如下代码(这些代码的重要功能是将字符串转换成正确格式的电话号码):

 1 namespace Phoneword_Droid
 2 {
 3     public static class PhoneTranslator
 4     {
 5         public static string ToNumber(string raw)
 6         {
 7             if (string.IsNullOrWhiteSpace(raw))
 8                 return "";
 9             else
10                 raw = raw.ToUpperInvariant();
11
12             var newNumber = new StringBuilder();
13             foreach (var c in raw)
14             {
15                 if (" -0123456789".Contains(c))
16                     newNumber.Append(c);
17                 else
18                 {
19                     var result = TranslateToNumber(c);
20                     if (result != null)
21                         newNumber.Append(result);
22                 }
23             }
24             return newNumber.ToString();
25         }
26
27         public static int? TranslateToNumber(char c)
28         {
29             if ("ABC".Contains(c))
30                 return 2;
31             else if ("DEF".Contains(c))
32                 return 3;
33             else if ("GHI".Contains(c))
34                 return 4;
35             else if ("JKL".Contains(c))
36                 return 5;
37             else if ("MNO".Contains(c))
38                 return 6;
39             else if ("PQRS".Contains(c))
40                 return 7;
41             else if ("TUV".Contains(c))
42                 return 8;
43             else if ("WXYZ".Contains(c))
44                 return 9;
45             return null;
46         }
47     }
48 }

然后我们打开MainActivity.cs文件:

2.然后我们首先要做的是通过FindViewById获取这些控件,OnCreate中代码如下所示(需要先成功生成一次,防止Resource.Id下没有对应的控件id):

1             base.OnCreate(bundle);
2             SetContentView(Resource.Layout.Main);
3             EditText phoneNumberText = FindViewById<EditText>(Resource.Id.PhoneNumberText);
4             Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton);
5             Button callButton = FindViewById<Button>(Resource.Id.CallButton);
6
7             callButton.Enabled = false;

3.然后我们需要给translateButton绑定监听事件,判断输入的字符是否为有效的电话号码,如果是则启用CallButton否则不启用,同时还修改CallButton的文字(在上面代码后面追加):

 1             string translatedNumber = string.Empty;
 2             translateButton.Click += (object sender, EventArgs e) =>
 3             {
 4                 translatedNumber = PhoneTranslator.ToNumber(phoneNumberText.Text);
 5                 if (String.IsNullOrWhiteSpace(translatedNumber))
 6                 {
 7                     callButton.Text = "Call";
 8                     callButton.Enabled = false;
 9                 }
10                 else
11                 {
12                     callButton.Text = "Call" + translatedNumber;
13                     callButton.Enabled = true;
14                 }
15             };

4.最后我们需要绑定callButton的监听事件,以便能够在用户点击后弹出对话框确认用户是否需要拨打,并拨打电话(依然是接着上面的追加):

 1             callButton.Click += (s, e) =>
 2             {
 3                 //对话框
 4                 var callDialog = new AlertDialog.Builder(this);
 5
 6                 //对话框内容
 7                 callDialog.SetMessage("Call" + translatedNumber + "?");
 8
 9                 //拨打按钮
10                 callDialog.SetNeutralButton("Call", delegate
11                 {
12                     //使用意图拨打电话
13                     var callIntent = new Intent(Intent.ActionCall);
14
15                     //将需要拨打的电话设置为意图的参数
16                     callIntent.SetData(Android.Net.Uri.Parse("tel:" + translatedNumber));
17
18                     StartActivity(callIntent);
19                 });
20
21                 //取消按钮
22                 callDialog.SetNegativeButton("Cancel", delegate { });
23
24                 //显示对话框
25                 callDialog.Show();
26             };

四、运行

笔者这里采用的是x86下的模拟机,并不是ARM下,关于如何开启x86下的模拟机需要的人可以留言(需要你的CPU支持VT-X),当然速度跟你的真机一样。

续篇:多界面

Xamarin.Android快速入门,布布扣,bubuko.com

时间: 2024-08-02 06:54:14

Xamarin.Android快速入门的相关文章

Hello, Android 快速入门

Hello, Android Android 开发与 Xamarin 简介 在这两节指南中,我们将 (使用 Xamarin Studio或 Visual Studio)建立我们的第一个 Xamarin.Android 应用程序 并理解使用Xamarin 开发Android 应用程序的基本原理的.在这个系列,我们将介绍有关工具的使用. Android开发相关的概念.构建和部署 Xamarin.Android 的应用程序所需的步骤. Hello, Android 快速入门 在本演练中,我们要创建一个

【Android快速入门3】布局简介及例子

目前自学到布局部分,下面演示了不同布局的基本训练,涵盖的内容还是不错的,而且简单易懂,分享给大家. 1.LinearLayout流式布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pa

【Android快速入门1】目录结构及adb命令(以API19为例)

目录结构 src: 存放java代码gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的idproject.properties: 指定当前工程采用的开发工具包的版本libs: 当前工程所依赖的jar包.assets: 放置一些程序所需要的媒体文件.bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件. res(resources): 资源文件. drawable: 存放程序所用的图片. layout: 存放android的布局文件. fragm

【Android快速入门】目录结构及adb命令【附Android拨号器的实现,自作】

目录结构 src: 存放java代码 gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的id project.properties: 指定当前工程采用的开发工具包的版本 libs: 当前工程所依赖的jar包. assets: 放置一些程序所需要的媒体文件. bin: 工程的编译目录. 存放一些编译时产生的临时文件和当前工程的.apk文件. res(resources): 资源文件. drawable: 存放程序所用的图片. layout: 存放android的布局文件.

Bmob移动后端云服务平台--Android从零开始--(二)android快速入门

Bmob移动后端云服务平台--Android从零开始--(二)android快速入门 上一篇博文我们简单介绍何为Bmob移动后端服务平台,以及其相关功能和优势.本文将利用Bmob快速实现简单例子,进一步了解它的强大之处. 一.准备工作 1.注册Bmob账号 在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的"注册",在跳转页面填入你的姓名.邮箱.设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了. 2.网站后台创

【Android快速入门2】拨号器的实现

拨号器是个很简单的布局,用来做Android的入门最好不过. 本程序给予Android API19编译实现,因此是新版布局.不习惯的请注意. 截图下次我有空补上. 1.Java主程序: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC

Android基础篇之Android快速入门--你必须要知道的基础

Android快速入门 1. 搭建开发环境 >解压压缩文件,得到:①Android SDK   (类似于JDK)② Eclipse  ③ADT >配置两个path环境变量:D:\adt-bundle-windows-x86\sdk\platform-tools:D:\adt-bundle-windows-x86\sdk\tools >配置基本的Eclipse的设置: 调整字体大小,字符集,配置android sdk的位置 >创建模拟器: 2. 创建第一个Android项目: Hel

Android快速入门教程总结帖

从3月份底开始,到5月15号,刚好差不多1个半月,小巫受CSDN学院邀请成为在线讲师,录制了第一门课程,关于Android入门的.从一开始录制这个课程非常困难,不停的NG,毕竟有点感觉一个人对着屏幕说话有点傻愣,如果别人不知道的话,确实以为你疯了,所以小巫花了一个半月的下班晚上时间和周末的时间,紧闭房门,与世隔绝,才勉勉强强把整套课程录制完.由于初期订的的价格也许太高,网上免费教学资源太多,所以这套课程不受欢迎是必然的了.不管怎样,关于学习这件事,方法和思路很重要,经验可以从书或者大牛身上获得,

一起学Google Daydream VR开发,快速入门开发基础教程一:Android端开发环境配置一

原文因涉及翻墙信息,被强制删除,此文为补发! 准备工作 进入Google Daydream开发者官网,开启准备工作,官网地址:https://vr.google.com/daydream/developers/ -------------------------------------------------------------------------------------------------------------------- Google Daydream开发者网址: https