-
打开Xamarin Studio 文件》New》Solution( 新建解决方案)
-
输入项目名称》Phoneword
-
双击 Main.axml在Android的设计器中打开它。让我们选择的Hello World,Click Me! 按钮在设计图面上,然后按Delete(删除)键将其删除。
-
打开MainActivity.cs,删除多余的代码,如果不删除,编译时就会出错,因为刚刚删除了第三步的button
-
切换到Main.axml,从工具栏中拖进Text(Large)控件
-
更改属性Text
-
添加控件Plain Text
-
更改id属性》@+id/PhoneNumberText;更改Text属性》1-855-XAMARIN
-
添加一个button控件
-
更改button的Id和text属性
-
再添加一个button
-
更改对应属性
-
现在来写转换按钮的代码,需要添加一个新文件
-
选择空类,命名为PhoneTranslator
-
文件创建好之后,清空原有现有的代码,复制一下的代码替换原来的代码(请好好理解下面代码的意思)
using System.Text; using System; namespace Core { public static class PhonewordTranslator { public static string ToNumber(string raw) { if (string.IsNullOrWhiteSpace(raw)) return ""; else raw = raw.ToUpperInvariant(); var newNumber = new StringBuilder(); foreach (var c in raw) { if (" -0123456789".Contains(c)) newNumber.Append(c); else { var result = TranslateToNumber(c); if (result != null) newNumber.Append(result); } // otherwise we've skipped a non-numeric char } return newNumber.ToString(); } static bool Contains (this string keyString, char c) { return keyString.IndexOf(c) >= 0; } 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,添加所需要的代码
代码如下:
-
EditText phoneNumberText = FindViewById<EditText>(Resource.Id.PhoneNumberText); Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton); Button callButton = FindViewById<Button>(Resource.Id.CallButton);
-
Next, we need to get a reference to the controls that we created in the layout file with the Android Designer. Let's add the following code inside the
OnCreate
method:// 禁用拨打电话按钮 callButton.Enabled = false; // 添加string类型变量(其实这句话的意思就是string translatedNuber="";) string translatedNumber = string.Empty; //转换按钮事件 translateButton.Click += (object sender, EventArgs e) => { // 因为之前添加的类是静态类,所以不用New,直接拿来用就可以了,传参即可 translatedNumber = Core.PhonewordTranslator.ToNumber(phoneNumberText.Text); if (String.IsNullOrWhiteSpace(translatedNumber)) { callButton.Text = "拨打电话"; callButton.Enabled = false; } else { callButton.Text = "拨打电话:" + translatedNumber; callButton.Enabled = true; } };
-
添加拨打电话按钮事件代码:
callButton.Click += (object sender, EventArgs e) => { // 当点击拨打电话按钮式,new一个弹出框,浮在当前(this)布局上 var callDialog = new AlertDialog.Builder(this); callDialog.SetMessage("拨打:" + translatedNumber + "?");//消息内容 callDialog.SetNeutralButton("拨打", delegate { // Create intent to dial phone var callIntent = new Intent(Intent.ActionCall); callIntent.SetData(Android.Net.Uri.Parse("tel:" + translatedNumber)); StartActivity(callIntent); }); callDialog.SetNegativeButton("取消", delegate { }); // 窗体弹出 callDialog.Show(); };
-
好了,代码部分我们就弄完了,这时候如果你点生成代码,能生成成功,但是不一定能运行成功。请一定要设置下面的相关设置!!
-
然后就能愉快的调试~\(≧▽≦)/~啦啦啦
创建第一个Xamarin.android application
最新推荐文章于 2021-06-22 16:00:43 发布