A veces se puede requerir al usuario establecer el tiempo en nuestra aplicación. Al hacer esto en vez de pedir al usuario que introduzca los datos de tiempo en forma cruda, le podemos proporcionar con una hermosa interfaz gráfica de usuario para ingresar los datos.
Android está equipado con un aparato llamado TimePicker que podemos integrar en nuestra aplicación para proporcionar esta funcionalidad a los usuarios finales.Cuenta con un elegante aspecto y el diseño. Por lo tanto, vamos a empezar .
Para demostrar el uso de flash TimePicker vamos a crear un diseño que tendrá un TextView y un botón. El botón se utiliza para elegir un nuevo tiempo y una vez elegido el momento actualizada se mostrará en la Vista de Texto. Crear un nuevo Android proyecto con las siguientes propiedades :
- Nombre del proyecto - Selector de tiempo
- Nombre de la aplicación - Selector de tiempo
- Nombre del paquete - com.botskool.TimePicker
- Nombre de la actividad - TimePickerActivity
Crear un nuevo archivo XML en res / layout / y el nombre como main.xml y copiar el siguiente código:
package com.botskool.TimePicker;
import java.util.Calendar;
import android.app.Activity;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
public class TimePickerActivity extends Activity {
/** Private members of the class */
private TextView displayTime;
private Button pickTime;
private int pHour;
private int pMinute;
/** This integer will uniquely define the dialog to be used for displaying time picker.*/
static final int TIME_DIALOG_ID = 0;
/** Callback received when the user "picks" a time in the dialog */
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
pHour = hourOfDay;
pMinute = minute;
updateDisplay();
displayToast();
}
};
/** Updates the time in the TextView */
private void updateDisplay() {
displayTime.setText(
new StringBuilder()
.append(pad(pHour)).append(":")
.append(pad(pMinute)));
}
/** Displays a notification when the time is updated */
private void displayToast() {
Toast.makeText(this, new StringBuilder().append("Time choosen is ").append(displayTime.getText()), Toast.LENGTH_SHORT).show();
}
/** Add padding to numbers less than ten */
private static String pad(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/** Capture our View elements */
displayTime = (TextView) findViewById(R.id.timeDisplay);
pickTime = (Button) findViewById(R.id.pickTime);
/** Listener for click event of the button */
pickTime.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});
/** Get the current time */
final Calendar cal = Calendar.getInstance();
pHour = cal.get(Calendar.HOUR_OF_DAY);
pMinute = cal.get(Calendar.MINUTE);
/** Display the current time in the TextView */
updateDisplay();
}
/** Create a new dialog for time picker */
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, pHour, pMinute, false);
}
return null;
}
}
En este caso, empezamos por declarar los miembros de nuestra clase . Usamos onCreate ()la función de mapa de nuestra clase miembros de las variables correspondientes en el diseño. Además, nos registrarse en el oyente el clic en el botón de evento. Cuando un usuario hace clic en el botón, nosotros llamamos el ShowDialog () función. Una llamada aonCreateDialog () función de las necesidades que se hizo la primera vez ShowDialog () la función se ejecuta con el fin de crear una instancia de diálogo TimePickerDialog . Una vez que se crea una instancia que se utilizan una y otra vez cada vez que el usuario hace clic en el botón de configuración de un nuevo tiempo. Asimismo, Recuperar el tiempo actual y llamar updateDisplay () función dentro de onCreate () función. El updateDisplay () la función se utiliza para actualizar TextView el diseño, la DisplayTime, utilizando los valores de los miembros de tiempo privado de la clase . Además, el TimePickerDialog.OnDateSetListenerescucha cuando el usuario ha establecido el tiempo (haciendo clic en el botón). Cada vez que esto sucede, el onTimeSet () método de devolución de llamada, que se define para actualizar el pHour y pMinute campos miembros de la nueva hora fijada por el usuario.Después de esto el sector privado updateDisplay () se llama al método para actualizar la TextView y displayToast () se llama al método para mostrar una notificación que informe sobre el cambio de hora. Eso es todo! Ahora compila y ejecuta el Android aplicación . Si hace clic en el botón del widget selector de tiempo se mostrará como se muestra a continuación:
Después de que el usuario establece el tiempo, la TextView se actualiza junto con la notificación tal como se muestra a continuación:
No hay comentarios:
Publicar un comentario