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)를 실행하니 겁나 빨라짐.