{
if (!string.IsNullOrWhiteSpace(phoneNumberText.Text))
callButton.Enabled = true;
else
callButton.Enabled = false;
};
callButton.Click += (object sender, EventArgs e) =>
{
//Make a Call 버튼 클릭시 전화를 건다.
var callDialog = new AlertDialog.Builder(this);
callDialog.SetMessage("Call " + phoneNumberText.Text + "?");
//"Call"을 클릭하는 경우
// 전화걸기 위한 인텐트 생성
callDialog.SetNeutralButton("Call", delegate
{
phoneNymbers.Add(phoneNumberText.Text);
callHistoryButton.Enabled = true;
// 인텐트는 액티비티의 전환이 일어날 때 호출하거나 메시지를 전달하는 매개체
// 암시적 인텐트 : 전환될 곳을 직접 지정하지 않고 액션을 적어서 사용한다.
// 명시적 인텐트 : 전환될 액티비티를 직접 적어서 표현하는 방법을 사용한다.
var callIntent = new Intent(Intent.ActionCall);
callIntent.SetData(Android.Net.Uri.Parse("tel:" + phoneNumberText.Text));
StartActivity(callIntent);
});
//Cancel을 클릭하는 경우
callDialog.SetNegativeButton("Cancel", delegate { });
callDialog.Show();
};
}
}
}
2. 2.3 HELLO ANDROID
MULTISCREEN EXAMPLE
[아래는 MainActivity.cs의 전체코드이다.]
using System;
using Android.App;
using Android.Content;
using Android.Widget;
using Android.OS;
using Android.Text;
using System.Collections.Generic;
3. 2.3 HELLO ANDROID
MULTISCREEN EXAMPLE
namespace Android_Hello
{
[Activity(Label = "Xamarin Android",
MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
static readonly List<string> phoneNymbers = new List<string>();
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
Button callHistoryButton = FindViewById<Button>(Resource.Id.CallHistoryButton);
callHistoryButton.Click += (sender, e) =>
{
4. 2.3 HELLO ANDROID
MULTISCREEN EXAMPLE
// 인텐트는 액티비티의 전환이 일어날 때 호출하거나 메시지를 전달하는
매개체
// 암시적 인텐트 : 전환될 곳을 직접 지정하지 않고 액션을 적어서
사용한다.
// 명시적 인텐트 : 전환될 액티비티를 직접 적어서 표현하는
방법을 사용한다.
var intent = new Intent(this, typeof(CallHistoryActivity));
// PutStringArrayExtra는 Intent에 전화 번호 목록을 첨부한다.
intent.PutStringArrayListExtra("phone_numbers",
phoneNymbers);
StartActivity(intent);
};
6. 2.3 HELLO ANDROID
MULTISCREEN EXAMPLE
callButton.Click += (object sender, EventArgs e) =>
{
//Make a Call 버튼 클릭시 전화를 건다.
var callDialog = new AlertDialog.Builder(this);
callDialog.SetMessage("Call " + phoneNumberText.Text +
"?");
//"Call"을 클릭하는 경우
// 전화걸기 위한 인텐트 생성
callDialog.SetNeutralButton("Call", delegate
{
phoneNymbers.Add(phoneNumberText.Text);
callHistoryButton.Enabled = true;
7. 2.3 HELLO ANDROID
MULTISCREEN EXAMPLE
// 인텐트는 액티비티의 전환이 일어날 때 호출하거나 메시지를 전달하는 매개체
// 암시적 인텐트 : 전환될 곳을 직접 지정하지 않고 액션을 적어서 사용한다.
// 명시적 인텐트 : 전환될 액티비티를 직접 적어서 표현하는 방법을 사용한다.
var callIntent = new Intent(Intent.ActionCall);
callIntent.SetData(Android.Net.Uri.Parse("tel:" + phoneNumberText.Text));
StartActivity(callIntent);
});
//Cancel을 클릭하는 경우
callDialog.SetNegativeButton("Cancel", delegate { });
callDialog.Show();
};
}
}
}