创建第一个Xamarin.android application

来源:互联网 发布:巨灵数据 编辑:程序博客网 时间:2024/05/01 23:38
  1. 打开Xamarin Studio 文件》New》Solution( 新建解决方案)


  2. 输入项目名称》Phoneword

  3. 双击 Main.axml在Android的设计器中打开它。让我们选择的Hello World,Click Me! 按钮在设计图面上,然后按Delete(删除)键将其删除。


  4. 打开MainActivity.cs,删除多余的代码,如果不删除,编译时就会出错,因为刚刚删除了第三步的button


  5. 切换到Main.axml,从工具栏中拖进Text(Large)控件


  6. 更改属性Text

  7. 添加控件Plain Text

  8. 更改id属性》@+id/PhoneNumberText;更改Text属性》1-855-XAMARIN

  9. 添加一个button控件

  10. 更改button的Id和text属性


  11. 再添加一个button

  12. 更改对应属性


  13. 现在来写转换按钮的代码,需要添加一个新文件    

  14. 选择空类,命名为PhoneTranslator 

  15. 文件创建好之后,清空原有现有的代码,复制一下的代码替换原来的代码(请好好理解下面代码的意思)

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

  16. 好了,现在我们找到我们的主文件MainActivity.cs,添加所需要的代码 代码如下:

  17. EditText phoneNumberText = FindViewById<EditText>(Resource.Id.PhoneNumberText);Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton);Button callButton = FindViewById<Button>(Resource.Id.CallButton);

  18. 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;    }};

  19. 添加拨打电话按钮事件代码:

    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();};

  20. 好了,代码部分我们就弄完了,这时候如果你点生成代码,能生成成功,但是不一定能运行成功。请一定要设置下面的相关设置!!



  21. 然后就能愉快的调试~\(≧▽≦)/~啦啦啦


0 0
原创粉丝点击