10.12.11

Aprender Windows Phone 7 (parte 36): Windows Phone 7 Chooser - EmailAddressChooserTask

El Chooser EmailAddressChooserTask lanza la aplicación de Contactos y permite al usuario seleccionar un contacto. Si la operación se completa con éxito se devolverá un objeto EmailResult que contiene un string con el email.

En la documentación aparece este ejemplo:

public partial class MainPage : PhoneApplicationPage
{
// Declare the EmailAddressChooserTask object with page scope.
EmailAddressChooserTask emailAddressChooserTask;


// Constructor
public MainPage()
{
InitializeComponent();

// Initialize the EmailAddressChooserTask and assign the Completed handler in the page constructor.
emailAddressChooserTask = new EmailAddressChooserTask();
emailAddressChooserTask.Completed += new EventHandler(emailAddressChooserTask_Completed);
}


// In this example, the EmailAddressChooserTask is shown in response to a button click
private void button1_Click(object sender, RoutedEventArgs e)
{
try
{
emailAddressChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}


// The Completed event handler. In this example, the retrieved email address is shown
// in a TextBox control.
void emailAddressChooserTask_Completed(object sender, EmailResult e)
{
if (e.TaskResult == TaskResult.OK)
{
textBox1.Text = e.Email;
}
}
}

Nosotros vamos a crear un programa en el que el usuario pueda llamar a este chooser y elegir el mail de un contacto.



Creando el proyecto

Abrimos Visual Studio y creamos un nuevo proyecto, para ello hay que pulsar en el menú "File" -> opción "New Project".

En la nueva ventana he seleccionado las opciones "Visual C#" -> "Silverlight for Windows Phone" -> "Windows Phone Application". Los demás datos son:

Name = EmailAddressChooserTaskExample
Location = (la que queráis, yo lo puse en...) C:\A_warterrain_A\Ejemplos WP7\ EmailAddressChooserTaskExample\
SolutionName = EmailAddressChooserTaskExample



A continuación se pide la versión de la aplicación. Seleccionamos Windows Phone 7.1 y damos a Ok.



Vamos a cambiar el interfaz de la página:

- Titulo "EMAILADDRESSCHOOSERTASK EXAMPLE".
- Titulo "principal".
- Un Button para lanzar la aplicación de selección de emails.
- Y un control Textbox para mostrar el contacto seleccionado.

Con el siguiente formato final:



Hay que agregar la siguientes librerías (para PhoneNumberChooserTask) :

using Microsoft.Phone.Tasks;


Creamos un atributo de la clase PhoneNumberChooserTask en la página principal:

EmailAddressChooserTask emailAddressChooserTask;


En el constructor hemos creado el objeto y hemos asignado el evento Completed.

emailAddressChooserTask = new EmailAddressChooserTask();
emailAddressChooserTask.Completed += new EventHandler(emailAddressChooserTask_Completed);


Y agregamos el método:

void emailAddressChooserTask_Completed(object sender, EmailResult e)
{
if (e.TaskResult == TaskResult.OK)
{
textBoxEmail.Text = e.Email;
}
}


Cuando se pulse el botón se ejecutará el siguiente código fuente:

private void buttonSeleccionarEmail_Click(object sender, RoutedEventArgs e)
{
try
{
emailAddressChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}


Pues vamos a ver qué tal ha quedado. Pulsamos en "Debug" -> "Start debugging" arrancaremos el emulador.

Tras un momento en que se ha estado iniciando el emulador, veréis el programa en el emulador de Windows Phone 7.



Al pulsar el botón se lanzará el selector de email:



Al seleccionar un contacto obtendremos su email:



Y obtendremos el correo de ejemplo seleccionado.

No comments:

Post a Comment