Exemple de sélecteur de temps Android

Exemple de sélecteur de temps Android

Sous Android, vous pouvez utiliser la classe «http://developer.android.com/reference/android/widget/TimePicker.html[android.widget.TimePicker]» pour rendre un composant de sélecteur de temps afin de sélectionner l'heure et la minute dans une pré- interface utilisateur définie.

Dans ce tutoriel, nous vous montrons comment rendre le composant de sélection de temps viaandroid.widget.TimePicker dans la page actuelle, et également dans la boîte de dialogue viaandroid.app.TimePickerDialog. De plus, nous vous montrons également comment définir un composant de sélecteur d'heure et de minute.

P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.

1. TimePicker

Ouvrez le fichier «res/layout/main.xml», ajoutez un sélecteur de temps, une étiquette et un bouton pour la démonstration.

Fichier: res / layout / main.xml



    

P.S The “TimePickerDialog” is declare in code, not XML.

2. Code Code

Lisez le commentaire du code, il devrait être explicite.

Fichier: MyAndroidAppActivity.java

package com.example.android;

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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;

public class MyAndroidAppActivity extends Activity {

    private TextView tvDisplayTime;
    private TimePicker timePicker1;
    private Button btnChangeTime;

    private int hour;
    private int minute;

    static final int TIME_DIALOG_ID = 999;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        setCurrentTimeOnView();
        addListenerOnButton();

    }

    // display current time
    public void setCurrentTimeOnView() {

        tvDisplayTime = (TextView) findViewById(R.id.tvTime);
        timePicker1 = (TimePicker) findViewById(R.id.timePicker1);

        final Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR_OF_DAY);
        minute = c.get(Calendar.MINUTE);

        // set current time into textview
        tvDisplayTime.setText(
                    new StringBuilder().append(pad(hour))
                                       .append(":").append(pad(minute)));

        // set current time into timepicker
        timePicker1.setCurrentHour(hour);
        timePicker1.setCurrentMinute(minute);

    }

    public void addListenerOnButton() {

        btnChangeTime = (Button) findViewById(R.id.btnChangeTime);

        btnChangeTime.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                showDialog(TIME_DIALOG_ID);

            }

        });

    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
        case TIME_DIALOG_ID:
            // set time picker as current time
            return new TimePickerDialog(this,
                                        timePickerListener, hour, minute,false);

        }
        return null;
    }

    private TimePickerDialog.OnTimeSetListener timePickerListener =
            new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int selectedHour,
                int selectedMinute) {
            hour = selectedHour;
            minute = selectedMinute;

            // set current time into textview
            tvDisplayTime.setText(new StringBuilder().append(pad(hour))
                    .append(":").append(pad(minute)));

            // set current time into timepicker
            timePicker1.setCurrentHour(hour);
            timePicker1.setCurrentMinute(minute);

        }
    };

    private static String pad(int c) {
        if (c >= 10)
           return String.valueOf(c);
        else
           return "0" + String.valueOf(c);
    }
}

P.S The “TimePickerDialog” example above, is referenced from Google Android time picker example, avec quelques modifications mineures.

3. Demo

Exécutez l'application.

1. Le résultat, le «sélecteur de temps» et la «visualisation de texte» sont réglés sur l'heure actuelle.

android timepicker demo1

2. Cliquez sur le bouton «Changer l'heure», il affichera un composant de sélection d'heure dans une boîte de dialogue viaTimePickerDialog.

android timepicker demo2

3. Le "sélecteur de temps" et la "visualisation de texte" sont mis à jour avec l'heure sélectionnée.

android timepicker demo3

Télécharger le code source

Téléchargez-le -Android-TimePicker-Example.zip (16 Ko)