Android: selector de tiempo

El selector de hora de Android le permite seleccionar la hora del día en modo 24 horas o AM / PM. El tiempo consta de horas, minutos y formato de reloj. Android proporciona esta funcionalidad a través de la clase TimePicker.

Para usar la clase TimePicker, primero debe definir el componente TimePicker en su activity.xml. Se define de la siguiente manera:

<TimePicker
   android:id="@+id/timePicker1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />

Después de eso, debe crear un objeto de la clase TimePicker y obtener una referencia del componente xml definido anteriormente. Su sintaxis se da a continuación.

import android.widget.TimePicker;
private TimePicker timePicker1;
timePicker1 = (TimePicker) findViewById(R.id.timePicker1);

Para obtener el tiempo seleccionado por el usuario en la pantalla, usará los métodos getCurrentHour () y getCurrentMinute () de la clase TimePicker. Su sintaxis se da a continuación.

int hour = timePicker1.getCurrentHour();
int min = timePicker1.getCurrentMinute();

Aparte de estos métodos, hay otros métodos en la API que dan más control sobre el componente TimePicker. Se enumeran a continuación.

No Señor Método y descripción
1

is24HourView()

Este método devuelve verdadero si está en la vista de 24 horas, de lo contrario es falso

2

isEnabled()

Este método devuelve el estado habilitado para esta vista

3

setCurrentHour(Integer currentHour)

Este método establece la hora actual

4

setCurrentMinute(Integer currentMinute)

Este método establece el minuto actual

5

setEnabled(boolean enabled)

Este método establece el estado habilitado de esta vista

6

setIs24HourView(Boolean is24HourView)

Este método establece si está en modo 24 horas o AM / PM

7

setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)

Este método establece la devolución de llamada que indica que el usuario ha ajustado la hora

Ejemplo

Aquí hay un ejemplo que demuestra el uso de la clase TimePicker. Crea una aplicación de selector de tiempo básica que le permite establecer la hora utilizando el widget TimePicker

Para experimentar con este ejemplo, puede ejecutarlo en un dispositivo real o en un emulador.

Pasos Descripción
1 Utilizará Android Studio para crear una aplicación de Android y nombrarla como TimePicker en un paquete com.example.timepicker.
2 Modifique el archivo src / MainActivity.java para agregar el código necesario.
3 Modifique res / layout / activity_main para agregar los componentes XML respectivos
4 Modifique res / values ​​/ string.xml para agregar los componentes de cadena necesarios
5 Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados

A continuación se muestra el contenido del archivo de actividad principal modificado src/com.example.timepicker/MainActivity.java.

package com.example.timepicker;

import java.util.Calendar;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.TimePicker;

public class MainActivity extends Activity {
   private TimePicker timePicker1;
   private TextView time;
   private Calendar calendar;
   private String format = "";

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      timePicker1 = (TimePicker) findViewById(R.id.timePicker1);
      time = (TextView) findViewById(R.id.textView1);
      calendar = Calendar.getInstance();
      
      int hour = calendar.get(Calendar.HOUR_OF_DAY);
      int min = calendar.get(Calendar.MINUTE);
      showTime(hour, min);
   }

   public void setTime(View view) {
      int hour = timePicker1.getCurrentHour();
      int min = timePicker1.getCurrentMinute();
      showTime(hour, min);
   }

   public void showTime(int hour, int min) {
      if (hour == 0) {
         hour += 12;
         format = "AM";
      } else if (hour == 12) {
         format = "PM";
      } else if (hour > 12) {
         hour -= 12;
         format = "PM";
      } else {
         format = "AM";
      }
		
      time.setText(new StringBuilder().append(hour).append(" : ").append(min)
      .append(" ").append(format));
   }


}

A continuación se muestra el contenido modificado del xml res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".MainActivity" >
   
   <TextView
      android:id="@+id/textView2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:text="@string/time_pick"
      android:textAppearance="?android:attr/textAppearanceMedium" />
      
   <Button
      android:id="@+id/set_button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="180dp"
      android:onClick="setTime"
      android:text="@string/time_save" />
      
   <TimePicker
      android:id="@+id/timePicker1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_above="@+id/set_button"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="24dp" />
      
   <TextView
      android:id="@+id/textView3"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@+id/timePicker1"
      android:layout_alignTop="@+id/set_button"
      android:layout_marginTop="67dp"
      android:text="@string/time_current"
      android:textAppearance="?android:attr/textAppearanceMedium" />
      
   <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@+id/textView3"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="50dp"
      android:text="@string/time_selected"
      android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

A continuación se muestra el contenido de la res/values/string.xml.

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TimePicker</string>
   <string name="action_settings">Settings</string>
   <string name="time_picker_example">Time Picker Example</string>
   <string name="time_pick">Pick the time and press save button</string>
   <string name="time_save">Save</string>
   <string name="time_selected"></string>
   <string name="time_current">The Time is:</string>
</resources>

Intentemos ejecutar nuestra aplicación TimePicker que acabamos de modificar. Supongo que habías creado tuAVDmientras realiza la configuración del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar de la barra de herramientas. Android Studio instala la aplicación en su AVD y la inicia y, si todo está bien con su configuración y aplicación, se mostrará la siguiente ventana del emulador: