Xamarin.Android 入门之:Xamarin快速入门
一、 准备工作
1.新建一个项目取名为phoneword
2.在项目创建好之后,让我们展开“Resources”文件夹然后找到并打开该文件夹下的“layout”文件夹,双击main.axml在Android设计器中打开它,这是我们的布局文件。
3.让我们选择“你好世界,请单击我”在设计表面上的按钮,并按删除键将其删除。从工具箱(左侧的区域),在搜索字段中输入text,并将一个Text (Large)控件拖动到设计图面中心的区域:
4.选择我们拖进去控件,我们可以在属性窗口中修改输入的文本
5.然后我们拖一个简单的文本控件到设计器,并放置在刚才我们添加的控件下面
6.在设计器中选中刚才添加的控件,我们可以在属性窗口中我们可以改变它的id和text
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 }
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);
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; } };
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(); };
8.最后让我们给应用程序添加一个拨打电话的权限:右击项目》属性》Android Manifest 勾选call_phone
9.右击解决方案》,重新生成解决方案,如果没有报错表示我们程序已经完成了,点击运行按钮运行,最后运行效果如图。
本文来自博客园,作者:HuTiger,转载请注明原文链接:https://www.cnblogs.com/huguodong/p/5814533.html,欢迎加入qq群927460240学习讨论