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로 한다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 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를 편집해서 기존 코드 밑에 내용을 넣는다.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | // 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)를 실행하니 겁나 빨라짐.