Hello, Android: Quickstart 를 보며 진행함. 미리 자마린 설치는 당연하겠죠?
New Project… > Visual C# > Android > Blank App(Android)
Solution Explorer > Resources > layout > Main.axml 을 연다
안드로이드 앱 만들기 준비 끝~
Text(Large) 를 넣고, 비밀번호를 입력해달라는 문구를 추가.
Text Fields > Plain Text 를 넣고, 암호문을 대충 넣는다.
id 속성에는 @+id/PhoneNumberText 를 입력.
Button을 넣고, Translate라는 텍스트를 넣는다.
id는 @+id/TranslateButton로 지정.
이번에는 TextView 컨트롤 추가.
적절한 위치에 배치하고, id는 @+id/TranslatedPhoneWord 로, text는 비워 놓는다.
Solution Explorer > Add > New Item… 프로젝트에서 새 항목 추가
Code File 추가. 이름은 PhoneTranslator.cs로 한다
using System.Text; using System; namespace Core { public static class PhoneTranslator { 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; } } }
PhoneTranslator.cs의 파일 내용을 넣어주자.
이번에는 MainActivity.cs를 편집해서 기존 코드 밑에 내용을 넣는다.
// Get our UI controls from the loaded layout EditText phoneNumberText = FindViewById<EditText>(Resource.Id.PhoneNumberText); TextView translatedPhoneWord = FindViewById<TextView>(Resource.Id.TranslatedPhoneWord); Button translateButton = FindViewById<Button>(Resource.Id.TranslateButton); // Add code to translate number translateButton.Click += (sender, e) => { // Translate user’s alphanumeric phone number to numeric string translatedNumber = Core.PhoneTranslator.ToNumber(phoneNumberText.Text); if (string.IsNullOrWhiteSpace(translatedNumber)) { translatedPhoneWord.Text = string.Empty; } else { translatedPhoneWord.Text = translatedNumber; } };
실행. (ARM 버전으로 수행하니 엄청 느렸다. 반드시 Android_Accelerated_Nougat으로 실행할 것!
오!! 첫 안드로이드 프로그램 실행 성공.
———— 실행이 안된다면? 느리다면? ———-
Android > Android SDK Manager
install packages… 필요한 Android SDK를 내려받아 설치하세요.
Intel® Hardware Accelerated Execution Manager 6.2.1 (HAXM) 을 설치. (설치 링크는 여기)
설치하고 나서 Android_Accelerated_Nougat(Android 7.1 – API 25)를 실행하니 겁나 빨라짐.