创建第一个Xamarin.android application

  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值