9.10.11

Aprender Windows Phone 7 (parte 26): Windows Phone 7 Chooser - SavePhoneNumberTask

El SavePhoneNumberTask salva un número de teléfono en la lista de Contactos. Este Chooser no devuelve datos, pero se puede manejar el evento Completed para determinar si la operación se completó correctamente.

 

En la documentación aparece este ejemplo:

public partial class MainPage : PhoneApplicationPage

{

// Declare the SavePhoneNumberTask object with page scope.

SavePhoneNumberTask savePhoneNumberTask;

// Constructor

public MainPage()

{

      InitializeComponent();

      // Initialize the SavePhoneNumberTask and assign the Completed handler in the page constructor.

      savePhoneNumberTask = new SavePhoneNumberTask();

      savePhoneNumberTask.Completed += new EventHandler<TaskEventArgs>(savePhoneNumberTask_Completed);

}

 

// In this example, the SaveEmailAddressTask is shown in response to a button click and the

// phone number value is obtained from a TextBox control.

private void button1_Click(object sender, RoutedEventArgs e)

{

    savePhoneNumberTask.PhoneNumber = phoneNumberTextBox.Text;

    try

    {

        savePhoneNumberTask.Show();

    }

    catch (System.InvalidOperationException ex)

    {

        // Catch the exception, but no handling is necessary.

    }

}

// The Completed event handler. No data is returned from this Chooser, but the TaskResult

// field allows you to determine if the task was completed or cancelled.

void savePhoneNumberTask_Completed(object sender, TaskEventArgs e)

{

    if (e.TaskResult == TaskResult.OK)

    {

        statusTextBlock.Text = "Save completed.";

    }

    else if (e.TaskResult == TaskResult.Cancel)

    {

         statusTextBlock.Text = "Save cancelled.";

    }

}

 

Nosotros vamos a crear un programa en el que el usuario pueda llamar a este chooser y elegir 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:

clip_image002[4]

Name = SavePhoneNumberTaskExample

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

SolutionName = SavePhoneNumberTaskExample

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

clip_image004[4]

Vamos a cambiar el interfaz de la página:

- Titulo “SAVEPHONENUMBERTASK EXAMPLE”

- Titulo “principal”.

- Un TextBox para escribir el número de teléfono a guardar.

- Un Button para salvar el email.

- Y un TextBlock para mostrar que la operación se realizó correctamente.

Con el siguiente formato final:

clip_image006[4]

Hay que agregar la siguiente librería:

using Microsoft.Phone.Tasks;

 

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

SavePhoneNumberTask savePhoneNumberTask;

 

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

savePhoneNumberTask = new SavePhoneNumberTask();

savePhoneNumberTask.Completed += new EventHandler<TaskEventArgs>(savePhoneNumberTask_Completed);

 

Y agregamos el método:

void savePhoneNumberTask_Completed(object sender, TaskEventArgs e)

{

    if (e.TaskResult == TaskResult.OK)

    {

        textBlockStatus.Text = "Save completed.";

    }

    else if (e.TaskResult == TaskResult.Cancel)

    {

         textBlockStatus.Text = "Save cancelled.";

    }

}

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

private void buttonSelectPhoneNumber_Click(object sender, RoutedEventArgs e)

{

    savePhoneNumberTask.PhoneNumber = textBoxPhoneNumber.Text;

    try

    {

        savePhoneNumberTask.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.

clip_image008[4]

Al pulsar Guardar número de teléfono se abrirá la aplicación de Contactos:

clip_image010[4]

clip_image012[4]

clip_image014[4]

Al terminar de guardar el número de teléfono volveremos a nuetra aplicación donde se mostrará el mensaje de que se ha salvado el número de teléfono correctamente.

clip_image016[4]

No comments:

Post a Comment