Android - Sélecteur de temps

Android Time Picker vous permet de sélectionner l'heure de la journée en mode 24 heures ou AM / PM. L'heure comprend les heures, les minutes et le format de l'horloge. Android fournit cette fonctionnalité via la classe TimePicker.

Pour utiliser la classe TimePicker, vous devez d'abord définir le composant TimePicker dans votre activity.xml. Il est défini comme ci-dessous -

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

Après cela, vous devez créer un objet de la classe TimePicker et obtenir une référence du composant xml défini ci-dessus. Sa syntaxe est donnée ci-dessous.

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

Afin d'obtenir l'heure sélectionnée par l'utilisateur à l'écran, vous utiliserez les méthodes getCurrentHour () et getCurrentMinute () de la classe TimePicker. Leur syntaxe est donnée ci-dessous.

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

Outre ces méthodes, il existe d'autres méthodes dans l'API qui donnent plus de contrôle sur TimePicker Component. Ils sont listés ci-dessous.

Sr. Non Méthode et description
1

is24HourView()

Cette méthode retourne true si c'est en vue 24 heures sinon false

2

isEnabled()

Cette méthode renvoie l'état activé pour cette vue

3

setCurrentHour(Integer currentHour)

Cette méthode définit l'heure actuelle

4

setCurrentMinute(Integer currentMinute)

Cette méthode définit la minute actuelle

5

setEnabled(boolean enabled)

Cette méthode définit l'état activé de cette vue

6

setIs24HourView(Boolean is24HourView)

Cette méthode définit si en mode 24 heures ou AM / PM

sept

setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)

Cette méthode Définit le rappel qui indique que l'heure a été ajustée par l'utilisateur

Exemple

Voici un exemple illustrant l'utilisation de la classe TimePicker. Il crée une application de base de sélecteur de temps qui vous permet de définir l'heure à l'aide du widget TimePicker

Pour expérimenter cet exemple, vous pouvez l'exécuter sur un appareil réel ou dans un émulateur.

Pas La description
1 Vous utiliserez Android Studio pour créer une application Android et la nommerez TimePicker sous un package com.example.timepicker.
2 Modifiez le fichier src / MainActivity.java pour ajouter le code nécessaire.
3 Modifiez le res / layout / activity_main pour ajouter les composants XML respectifs
4 Modifiez le fichier res / values ​​/ string.xml pour ajouter les composants de chaîne nécessaires
5 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats

Voici le contenu du fichier d'activité principal modifié 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));
   }


}

Voici le contenu modifié du 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>

Voici le contenu 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>

Essayons d'exécuter notre application TimePicker que nous venons de modifier. Je suppose que vous avez créé votreAVDlors de la configuration de l'environnement. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. Android Studio installe l'application sur votre AVD et la démarre et si tout va bien avec votre configuration et votre application, elle affichera la fenêtre Emulator suivante -