Пример выбора времени Android

Пример выбора времени для Android

В Android вы можете использовать класс «http://developer.android.com/reference/android/widget/TimePicker.html[android.widget.TimePicker]», чтобы визуализировать компонент выбора времени, чтобы выбрать часы и минуты на определенный пользовательский интерфейс.

В этом руководстве мы покажем вам, как визуализировать компонент выбора времени черезandroid.widget.TimePicker на текущей странице, а также в диалоговом окне черезandroid.app.TimePickerDialog. Кроме того, мы также покажем вам, как установить час и минуту в компоненте выбора времени.

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

1. TimePicker

Откройте файл «res/layout/main.xml», добавьте средство выбора времени, метку и кнопку для демонстрации.

Файл: res / layout / main.xml




    

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

2. Код код

Прочитайте комментарий к коду, он должен быть понятен.

Файл: 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, с небольшими изменениями.

3. Demo

Запустите приложение.

1. Результат, «Выбор времени» и «Просмотр текста» установлены на текущее время.

android timepicker demo1

2. Нажмите на кнопку «Изменить время», в диалоговом окне отобразится компонент выбора времени черезTimePickerDialog.

android timepicker demo2

3. «Выбор времени» и «просмотр текста» обновляются с выбранным временем.

android timepicker demo3

Скачать исходный код

Скачать -Android-TimePicker-Example.zip (16 КБ)