VS/Xamarin Android开发Follow Me(一)

一、准备工作

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,然后在其中写入如下代码(这些代码的重要功能是将字符串转换成正确格式的电话号码):

namespace Phoneword_Droid

{

    public static class PhoneTranslator

    {

        public static string ToNumber(string raw)

        {

            if (string.IsNullOrWhiteSpace(raw))

                return "";

            else

                raw = raw.ToUpperInvariant();

            var newNumber = new StringBuilder();

            foreach (var in raw)

            {

                if (" -0123456789".Contains(c))

                    newNumber.Append(c);

                else

                {

                    var result = TranslateToNumber(c);

                    if (result != null)

                        newNumber.Append(result);

                }

            }

            return newNumber.ToString();

        }

        public 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;

        }

    }

}

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

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

base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
EditText phoneNumberText = FindViewById<EditText>(Resource.Id.PhoneNumberText);
Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton);
Button callButton = FindViewById<Button>(Resource.Id.CallButton);
callButton.Enabled = false;

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

string translatedNumber = string.Empty;
translateButton.Click += (object sender, EventArgs e) =>
{
translatedNumber = PhoneTranslator.ToNumber(phoneNumberText.Text);
if (String.IsNullOrWhiteSpace(translatedNumber))
{
callButton.Text = "Call";
callButton.Enabled = false;
}
else
{
callButton.Text = "Call" + translatedNumber;
callButton.Enabled = true;
}
};

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

callButton.Click += (s, e) =>
{
//对话框
var callDialog = new AlertDialog.Builder(this);

//对话框内容
callDialog.SetMessage("Call" + translatedNumber + "?");

//拨打按钮
callDialog.SetNeutralButton("Call", delegate
{
//使用意图拨打电话
var callIntent = new Intent(Intent.ActionCall);

//将需要拨打的电话设置为意图的参数
callIntent.SetData(Android.Net.Uri.Parse("tel:" + translatedNumber));

StartActivity(callIntent);
});

//取消按钮
callDialog.SetNegativeButton("Cancel", delegate { });

//显示对话框
callDialog.Show();
};

四、运行

还需要添加对应的权限

今天就到这里……

原文地址:https://www.cnblogs.com/xtxk110/p/12174596.html

时间: 2024-11-03 02:44:50

VS/Xamarin Android开发Follow Me(一)的相关文章

VS/Xamarin Android开发Follow Me(六)

通知详解 一.发送通知的机制 在日常的app应用中经常需要使用通知,因为服务.广播后台活动如果有事件需要通知用户,则需要通过通知栏显示,而在Xamarin.Android下的通知需要获取NotificationManager服务,而该服务需要通过GetSystemService获取,同时还要传递一个标识符.获取了通知管理器后我们就可以实例化Notification,然后再由NotificationManager发送出去.这就是整个过程了.下面我们将一一详解通知. 二.前期准备 为了下面的学习和演

VS/Xamarin Android开发Follow Me(五)

一.服务的生命周期 服务与活动一样,在它的整个生命周期中存在着一些事件,下图可以很好解释整个过程以及涉及到的方法: 在真实的使用中,Service来还包含一个OnBind方法,并且必须要使用该方法,但是只要返回NULL即可,除非当前服务是一个绑定服务,那么就要返回实现了IBinder的实例. 二.回调方法的总结 上图中涉及到了几个方法,下面将做简单的介绍: OnCreate:只会在服务第一次开启的时候调用,主要负责一些初始化代码 OnStartCommand:每次启动服务都会调用该方法,可能来自

VS/Xamarin Android开发Follow Me(四)

获取与解析JSON 一.新建项目 1.新建一个Android项目,并命名为为NetJsonList 2.右击引用,选择添加引用,引用System.Json.dll 二.同步请求 既然是跨平台,我们自然不能按照java下的方式进行编写,否则如何跨平台呢,所以我们需要使用Syste.Net命名空间下的两个类:HttpWebRequest和HttpWebResponse. 首先打开Resources/layout/Main.axml文件 删除其他上面的控件,并拖拽一个Text(large)到其中. 接

xamarin.Android 开发环境

纯粹的.net程序员,没有任何android开发经验.连续折腾三天,才配置完成的xamarin.android开发环境,完成Hello World ,一路都是坑啊. 一.得新安装VS2015,把移动开发选项勾上:xamarin ,android有SDK我也勾了,但是没有用,装得很慢,也装不上.最终的结果是,我把所有与android相关的都删了,手动安装和配置JDK.Android SDK.Android NDK. 推荐个好地方:http://www.androiddevtools.cn/ 我所有

Xamarin Android开发实战(上册)大学霸内部资料

Xamarin Android开发实战(上册)大学霸内部资料 试读文档下载地址:http://pan.baidu.com/s/1jGEHhhO 密码:vcfm 介绍: 本教程是国内唯一的Xamarin Android开发专向教程.本教程详细讲解如何基于Windows系统,在Visual Studio 2013开发环境中,使用Xamarin开发Android应用APP. 目  录 第1章  Xamarin开发Anroid应用介绍 1 1.1  Xamarin基本知识 1 1.1.1  Xamari

Xamarin.Android开发实践(十七)

Xamarin.Android之定位 一.前言 打开我们手中的应用,可以发现越来越多的应用使用了定位,从而使我们的生活更加方便,所以本章我们将学习如何在Xamarin中进行定位的开发. 二.准备工作 因为我们的虚拟机是运行在电脑本地的,自然就没法进行定位了,但是我们可以借助DDMS这个工具帮助我们去调试. 首先要确定你的Android SDK所在的目录,读者可以通过以下方式找到: 工具->选项 然后读者打开该文件夹下的tools文件夹,我们就可以看到里面有很多以bat结果的文件,这个时候我们打开

Xamarin.Android开发实践(十四)

Xamarin.Android之ListView和Adapter 一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xamarin去实现它,以及如何使用适配器和自定义适配器(本文中的适配器的主要内容就是将原始的数据转换成了能够供列表控件显示的项). 二.简介适配器 在开始之前我们需要先了解下适配器,首先是提供给我们使用的适配器之间的关系: 下面我们将上面的适配器进行简单的介绍: BaseAdapter:顾名思义,就是所以适配器的基类,但是我们不能将其实例化,因为它是一个虚类

Xamarin.Android开发实践(十五)

Xamarin.Android学习之应用程序首选项 一.前言 任何App都会存在设置界面,如果开发者利用普通控件并绑定监听事件保存设置,这 一过程会非常的枯燥,而且耗时.我们可以看到Android系统的设置界面里面的选项如此之多,是不是都是这样开发的呢?其实不然,Android已经给 我们提供了专门设计这一功能的技术,叫应用程序首选项,今天我们将学习如何使用他们来开发配置界面以及功能. 二.准备工作 首先需要理解的就是我们设置界面还是需要控件的,但是我们所使用的控件不在是普通的控件,下面我们来简

Xamarin.Android开发实践(九)

Xamarin.Android之ActionBar与菜单 一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在 Android 3.0 以上的版本中,我们已经可以使用ActionBar提供的Tab来实现这种效果,而不需要我们自己去实现碎片的切换.ActionBar默认是不具备选项 卡功能的,所以我们需要给一个属性赋上对应的枚举,比如下面的方式将开启选项卡. 1 ActionBar.NavigationMode = ActionBarNavigationMode.Tab