Xamarin.Android 入門之:Xamarin快速入門


一、 准備工作

 1.新建一個項目取名為phoneword

 

2.在項目創建好之后,讓我們展開“Resources”文件夾然后找到並打開該文件夾下的“layout”文件夾,雙擊main.axml在Android設計器中打開它,這是我們的布局文件。

3.讓我們選擇“你好世界,請單擊我”在設計表面上的按鈕,並按刪除鍵將其刪除。從工具箱(左側的區域),在搜索字段中輸入text,並將一個Text (Large)控件拖動到設計圖面中心的區域:

4.選擇我們拖進去控件,我們可以在屬性窗口中修改輸入的文本

 

5.然后我們拖一個簡單的文本控件到設計器,並放置在剛才我們添加的控件下面

 

6.在設計器中選中剛才添加的控件,我們可以在屬性窗口中我們可以改變它的idtext

 

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 = FindViewById<EditText>(Resource.Id.PhoneNumberText);
2 Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton);
3 Button callButton = FindViewById<Button>(Resource.Id.CallButton);
View Code

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.右擊解決方案》,重新生成解決方案,如果沒有報錯表示我們程序已經完成了,點擊運行按鈕運行,最后運行效果如圖。

 

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM