Xamarin.Android 入门之:Xamarin快速入门

一、 准备工作

 1.新建一个项目取名为phoneword

 

2.在项目创建好之后,让我们展开“Resources”文件夹然后找到并打开该文件夹下的“layout”文件夹,双击main.axml在Android设计器中打开它,这是我们的布局文件。

3.让我们选择“你好世界,请单击我”在设计表面上的按钮,并按删除键将其删除。从工具箱(左侧的区域),在搜索字段中输入text,并将一个Text (Large)控件拖动到设计图面中心的区域:

4.选择我们拖进去控件,我们可以在属性窗口中修改输入的文本

 

5.然后我们拖一个简单的文本控件到设计器,并放置在刚才我们添加的控件下面

 

6.在设计器中选中刚才添加的控件,我们可以在属性窗口中我们可以改变它的idtext

 

7.让我们拖动一个“按钮”到设计器,并改变它的id和text

8.然后我们再拖一个按钮在刚才的按钮下面,并设置其属性,然后ctrl+s保存一下

 

二、代码

 1.现在我们来添加一些代码,右击项目,选择“添加》新建项“添加一个c#代码文件取名为PhoneTranslator.cs

    

 

2.将下列代码copy进去

 1 namespace Phoneword
 2 {
 3     public static class PhonewordTranslator
 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                 // otherwise we've skipped a non-numeric char
24             }
25             return newNumber.ToString();
26         }
27         static bool Contains(this string keyString, char c)
28         {
29             return keyString.IndexOf(c) >= 0;
30         }
31         static int? TranslateToNumber(char c)
32         {
33             if ("ABC".Contains(c))
34                 return 2;
35             else if ("DEF".Contains(c))
36                 return 3;
37             else if ("GHI".Contains(c))
38                 return 4;
39             else if ("JKL".Contains(c))
40                 return 5;
41             else if ("MNO".Contains(c))
42                 return 6;
43             else if ("PQRS".Contains(c))
44                 return 7;
45             else if ("TUV".Contains(c))
46                 return 8;
47             else if ("WXYZ".Contains(c))
48                 return 9;
49             return null;
50         }
51     }
52 }
View Code

3.下一步,我们将添加代码来连接用户。让我们双击项目中的MainActivity类打开它(也就是Android中的活动)。

4.找到MainActivity类中的Oncreate方法,删除模板中的代码,我们将在Oncrate中书写代码

5.下面我们需要找到我们在设计器中添加的控件,让我们在oncreate方法中添加以下代码(在SetContentView方法后面)。

1  EditText phoneNumberText = FindViewById<EditText>(Resource.Id.PhoneNumberText);
2 Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton);
3 Button callButton = FindViewById<Button>(Resource.Id.CallButton);
View Code

6.下面我们添加Translate button点击事件的代码 在上一步后面

           // 设置callbutton为不能点
            callButton.Enabled = false;

            // 设置translatedNumber为空
            string translatedNumber = string.Empty;

            //添加translateButton的点击事件
            translateButton.Click += (object sender, EventArgs e) =>
            {
                //把用户的电话号码转换为数字
                translatedNumber = PhonewordTranslator.ToNumber(phoneNumberText.Text);
                if (String.IsNullOrWhiteSpace(translatedNumber))//如果有空或者空格
                {
                    callButton.Text = "Call";
                    callButton.Enabled = false;
                }
                else
                {
                    callButton.Text = "Call " + translatedNumber;
                    callButton.Enabled = true;
                }
            };
View Code

7. 然后添加Call butto点击事件的代码

           //设置callButton的点击事件
            callButton.Click += (object sender, EventArgs 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();
            };
View Code

8.最后让我们给应用程序添加一个拨打电话的权限:右击项目》属性》Android Manifest  勾选call_phone

 

9.右击解决方案》,重新生成解决方案,如果没有报错表示我们程序已经完成了,点击运行按钮运行,最后运行效果如图。

 

 


posted @ 2016-08-28 15:58  HuTiger  阅读(5046)  评论(0编辑  收藏  举报