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 }View Code
3.下一步,我们将添加代码来连接用户。让我们双击项目中的MainActivity类打开它(也就是Android中的活动)。

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

5.下面我们需要找到我们在设计器中添加的控件,让我们在oncreate方法中添加以下代码(在SetContentView方法后面)。
1 EditText phoneNumberText = FindViewByIdView Code(Resource.Id.PhoneNumberText); 2 Button translateButton = FindViewById
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.右击解决方案》,重新生成解决方案,如果没有报错表示我们程序已经完成了,点击运行按钮运行,最后运行效果如图。


转载于:https://www.cnblogs.com/huguodong/p/5814533.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
