loading...

viernes, 2 de diciembre de 2011

Ejemplo de DatePicker TimePicker en Java

 

A DatePicker es un widget que permite al usuario seleccionar un mes, día y año.

  1. Inicie un nuevo proyecto / actividad llamada HelloDatePicker.
  2. Abra el archivo de diseño y hacer que de este modo:
    <? xml 


       
               
               
                la fecha " />

    </ LinearLayout>

    Para la disposición, estamos usando un LinearLayout vertical, con una TextView que mostrará la fecha y un botón que iniciará el cuadro de diálogo Selector de fechas. Con esta disposición, la TextView se sentará sobre el botón. El valor del texto en la Vista de Texto se encuentra vacío, ya que se llenará con la fecha actual en que nuestra actividad se ejecuta.



  3. Abrir HelloDatePicker.java. Inserte el siguiente a la clase HelloDatePicker:

           
           


            Ver captura de nuestros



            añadir un detector haga clic en el

               

               
           

            obtener la corriente
           




            mostrar la fecha actual
            updateDisplay ();
        }

    Sugerencia: Pulse la tecla Ctrl (o Cmd) + Shift + O para importar todos los paquetes necesarios.

    Empezamos por crear instancias de las variables para nuestros puntos de vista y los campos de fecha. El DATE_DIALOG_ID es un entero estático que identifica el cuadro de diálogo. En el onCreate () método, nos preparamos mediante el establecimiento de la distribución y captura de los elementos de la vista. Entonces se crea una escucha on-clic del botón, de modo que cuando se hace clic se mostrará nuestro diálogo DatePicker. El ShowDialog () método que aparezca el diálogo de selección de fecha al llamar al onCreateDialog () el método de devolución de llamada (que definiremos en la próxima sección). A continuación, crear una instancia del calendario y obtener el año en curso, mes y día. Finalmente, hacemos un llamado updateDisplay () -un método propio (que se define más adelante) que llenará el TextView.



  4. Después de la onCreate () método, agregue el onCreateDialog () el método de devolución de llamada (que es llamado por ShowDialog () )

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DATE_DIALOG_ID:
            return new DatePickerDialog(this,
                        mDateSetListener,
                        mYear, mMonth, mDay);
        }
        return null;
    }

    Este método se le pasa el identificador que le dio ShowDialog () y se inicializa el DatePicker a la fecha se recuperaron a partir de nuestra instancia de Calendar.



  5. A continuación, agregue el updateDisplay () método:

        / / Actualiza la fecha en que se muestran en la TextView 
        privada vacío updateDisplay () {
            mDateDisplay . setText (
                nuevo StringBuilder ()
                        / / Mes 0 es base para añadir una
                        . anexar ( mMonth + 1 ). anexar ( "-" )
                        . agregar ( mday .) añadir ( "-" )
                        . anexar ( mYear .) añadir ( "" ));
        }

    Este sistema utiliza los valores de fecha miembro de escribir la fecha en nuestro TextView.



  6. Por último, añadir un oyente que se llamará cuando el usuario establece una nueva fecha:

        / / La devolución de llamada cuando el usuario "sets" de la fecha en la
       
               

                   
                                         




                   
               

    Este OnDateSetListener método de escucha para cuando el usuario se ha terminado de definir la fecha (hace clic en el botón "Set"). En ese momento, el fuego y ponemos al día nuestros campos miembros del cambio de fecha definido por el usuario y actualizar nuestra TextView llamando updateDisplay () .



  7. Ahora lo ejecutamos.

Al pulsar el botón "Cambiar la fecha", usted debería ver lo siguiente:


Main.xml

<? xml version = "1.0" codificación = "UTF-8" ?>

< LinearLayout xmlns: android = " Http: / / Schemas.android.com / Apk / Res / Android "

android: Layout_Width = "Wrap_Content"

android: Layout_Height = "Wrap_Content"

android: orientación = "vertical" >

< TextView android: id = "@ + id / Datedisplay"

android: Layout_Width = "Wrap_Content"

android: Layout_Height = "Wrap_Content"

android: texto = "" />

< Botón de android: id = "@ + id / Pickdate"

android: Layout_Width = "Wrap_Content"

android: Layout_Height = "Wrap_Content"

android: texto = "El cambio de la fecha" />

< Botón de android: id = "@ + id / Picktime"

android: Layout_Width = "Wrap_Content"

android: Layout_Height = "Wrap_Content"

android: texto = "Cambiar la hora" />

</ LinearLayout >

 

HelloDatePicker.java

 

Paquete com.example.hellodatepicker;

importación java.util.Calendar;

importación android.app.Activity;

importación android.app.DatePickerDialog;

la importación android.app.Dialog;

importación android.app.TimePickerDialog;

importación android.os.Bundle;

importación android.view.View;

importación android.widget.Button;

importación android.widget.DatePicker;

importación android.widget.TextView;

importación android.widget.TimePicker;

público de clase HelloDatePicker extiende Actividad {

/ ** Se le llama cuando la actividad se creó por primera vez. * /

privado mDateDisplay TextView;

privado mPickDate Button;

privado mPickTime Button;

privada int mYear;

privada int mMonth;

privada int mday;

privada int mHour;

privada int mMinute;

estáticas finales int DATE_DIALOG_ID = 0 ;

estáticas finales int TIME_DIALOG_ID = 1 ;

@ Override

público vacío onCreate (paquete savedInstanceState) {

súper . onCreate (savedInstanceState);

setContentView (R.layout.main);

/ / Captura de nuestros elementos de la vista

mDateDisplay = (TextView) findViewById (R.id.dateDisplay);

mPickDate = (Button) findViewById (R.id.pickDate);

mPickTime = (Button) findViewById (R.id.pickTime)

/ / Añadir un oyente haga clic en el botón

mPickDate.setOnClickListener ( nuevo View.OnClickListener () {

público vacío onClick (Ver v) {showDialog (DATE_DIALOG_ID);}

});

mPickTime.setOnClickListener ( nuevo View.OnClickListener () {

público vacío onClick (Ver v) {showDialog (TIME_DIALOG_ID);}

});

/ / Obtener la fecha actual

finales Calendario c = Calendar.getInstance ();

mYear = c.get (Calendar.YEAR);

mMonth = c.get (Calendar.MONTH);

mday = c.get (Calendar.DAY_OF_MONTH);

mHour = c.get (Calendar.HOUR_OF_DAY);

mMinute = c.get (Calendar.MINUTE);

/ / Mostrar la fecha actual

updateDisplay ();

}

@ Override

protegidos de diálogo onCreateDialog ( int id) {

switch (id) {

caso DATE_DIALOG_ID:

volver nueva DatePickerDialog ( este mDateSetListener, mYear, mMonth, mday);

caso TIME_DIALOG_ID:

volver nueva TimePickerDialog ( este mTimeSetListener, mHour, mMinute, falso );

}

retorno nulo ;

}

privadas sin efecto updateDisplay () {

mDateDisplay.setText (

nuevo StringBuilder ()

/ / Mes es de 0 base por lo que añadir una

. Append (mMonth + 1 ). append ( "-" )

.. Append (mday) append ( "-" )

. Append (mYear). Append ( "" )

.. Append (pad (mHour)) append ( ":" )

. Append (pad (mMinute)));

}

/ / La devolución de llamada cuando el usuario "sets" de la fecha en el cuadro de diálogo

privado mDateSetListener DatePickerDialog.OnDateSetListener =

nueva DatePickerDialog.OnDateSetListener () {

público vacío onDateSet (ver DatePicker, int año, int monthOfYear, int DAYOFMONTH) {

mYear = año;

mMonth = monthOfYear;

mday = DAYOFMONTH;

updateDisplay ();

}

};

privado mTimeSetListener TimePickerDialog.OnTimeSetListener =

nueva TimePickerDialog.OnTimeSetListener () {

público vacío onTimeSet (TimePicker punto de vista, int hourOfDay, int minuto) {

mHour = hourOfDay;

mMinute = minutos;

updateDisplay ();

}

};

privada estática pad de cuerdas ( int c) {

si (c> = 10 )

volver String.valueOf (c)

más

retorno "0" + String.valueOf (c);

}

}



1 comentario:

  1. al menos date el tiempo de traducir mejor, no es solo copy n paste.

    ResponderEliminar