Android - Selezione ora

Android Time Picker ti consente di selezionare l'ora del giorno in modalità 24 ore o AM / PM. L'ora è composta da ore, minuti e formato dell'orologio. Android fornisce questa funzionalità tramite la classe TimePicker.

Per utilizzare la classe TimePicker, devi prima definire il componente TimePicker nel tuo activity.xml. È definito come di seguito:

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

Dopodiché devi creare un oggetto della classe TimePicker e ottenere un riferimento del componente xml definito sopra. La sua sintassi è data di seguito.

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

Per ottenere l'ora selezionata dall'utente sullo schermo, si utilizzeranno i metodi getCurrentHour () e getCurrentMinute () della classe TimePicker. La loro sintassi è fornita di seguito.

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

Oltre a questi metodi, ci sono altri metodi nell'API che offrono un maggiore controllo sul componente TimePicker. Sono elencati di seguito.

Suor n Metodo e descrizione
1

is24HourView()

Questo metodo restituisce true se è nella visualizzazione 24 ore altrimenti false

2

isEnabled()

Questo metodo restituisce lo stato abilitato per questa visualizzazione

3

setCurrentHour(Integer currentHour)

Questo metodo imposta l'ora corrente

4

setCurrentMinute(Integer currentMinute)

Questo metodo imposta il minuto corrente

5

setEnabled(boolean enabled)

Questo metodo imposta lo stato abilitato di questa visualizzazione

6

setIs24HourView(Boolean is24HourView)

Questo metodo imposta se in modalità 24 ore o AM / PM

7

setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)

Questo metodo Imposta la richiamata che indica che l'ora è stata regolata dall'utente

Esempio

Ecco un esempio che dimostra l'uso della classe TimePicker. Crea un'applicazione di base Time Picker che ti consente di impostare l'ora utilizzando TimePicker Widget

Per sperimentare questo esempio, puoi eseguirlo su un dispositivo reale o in un emulatore.

Passi Descrizione
1 Utilizzerai Android Studio per creare un'applicazione Android e chiamarla TimePicker in un pacchetto com.example.timepicker.
2 Modifica il file src / MainActivity.java per aggiungere il codice necessario.
3 Modifica res / layout / activity_main per aggiungere i rispettivi componenti XML
4 Modificare res / values ​​/ string.xml per aggiungere i componenti stringa necessari
5 Esegui l'applicazione e scegli un dispositivo Android in esecuzione, installa l'applicazione su di esso e verifica i risultati

Di seguito è riportato il contenuto del file di attività principale modificato 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));
   }


}

Di seguito è riportato il contenuto modificato del file 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>

Di seguito è riportato il contenuto del file 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>

Proviamo a eseguire la nostra applicazione TimePicker che abbiamo appena modificato. Presumo che tu abbia creato il tuoAVDdurante l'impostazione dell'ambiente. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Android Studio installa l'app sul tuo AVD e la avvia e se tutto va bene con la configurazione e l'applicazione, verrà visualizzata la seguente finestra dell'emulatore: