private void Button_Click(object sender, System.EventArgs e)
{
var translatedNumber = PhoneTranslator.ToNumber("13911248117");
//对话框
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();
}
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);
}
}
return newNumber.ToString();
}
public 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;
}
}