Работаем с Time Picker
Главная » Работаем с Time Picker

В этом уроке речь пойдет о работе с таким элементом Android программирования, как Time Picker. В прошлом уроке было рассмотрено работу с элементом Date Picker, методы работы с этими элементами довольно похожи. Элемент Time Picker служит для выбора времени в Android интерфейсе. Мы создадим аналогичное прошлому приложение, состоящее с элементов Button, TextView и Time Picker. При запуске приложения на TextView и Time Picker будет выводится текущее время системы, а при нажатии на кнопку будем запускать диалог выбора времени TimePickerDialog, в котором настроим желаемое время, после чего оно установится на наши элементы TextView и Time Picker интерфейса программы.

Можете использовать проект с прошлого урока, можете создать новый, выбираем обычный Blank Activity. Начнем с создания интерфейса приложения. Открываем файл activity_main.xml и добавляем туда элементы Button, TextView и Time Picker:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
 android:id="@+id/button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Сменить время"
 android:layout_gravity="center"/>
<TextView
 android:id="@+id/CurTime"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center"/>
<TimePicker
 android:id="@+id/TimePick"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center"/>
</LinearLayout>

В файле MainActivity.java настраиваем вывод текущего времени при запуске программы, опишем слушателя нажатий по клавише методом по имени ButtonListener, используя в нем интерфейс OnClickListener, при нажатии на кнопку вызываем TimePickerDialog для настройки желаемого времени, а потом выводим его на наши элементы:

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 MainActivity extends Activity {

 private TextView TimeDisplay;
 private TimePicker mTimePicker;
 private Button SetTime;

 private int hours;
 private int minutes;

 static final int TIME_DIALOG_ID = 999;

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

 setCurrentTime();
 ButtonListener();
 }

 //При запуске отображаем текущее время
 public void setCurrentTime() {

 TimeDisplay = (TextView) findViewById(R.id.CurTime);
 mTimePicker = (TimePicker) findViewById(R.id.TimePick);

 final Calendar calendar = Calendar.getInstance();
 hours = calendar.get(Calendar.HOUR_OF_DAY);
 minutes = calendar.get(Calendar.MINUTE);

 //Настраиваем текущее время в TextView:
 TimeDisplay.setText(
 new StringBuilder().append(pad(hours))
 .append(":").append(pad(minutes)));

 //Настраиваем текущее время в TimePicker:
 mTimePicker.setCurrentHour(hours);
 mTimePicker.setCurrentMinute(minutes);

 }

 //Добавляем слушателя нажатий кнопки:
 public void ButtonListener() {
 SetTime = (Button) findViewById(R.id.button);
 SetTime.setOnClickListener(new OnClickListener() {

 @Override
 public void onClick(View v) {
 //При нажатии кнопки запускается диалог TimePickerDialog для выбора времени:
 showDialog(TIME_DIALOG_ID);

 }
 });
 }

 @Override
 protected Dialog onCreateDialog(int id) {
 switch (id) {
 case TIME_DIALOG_ID:
 //Задаем в TimePicker текущее время:
 return new TimePickerDialog(this,
 timePickerListener, hours, minutes,false);
 }
 return null;
 }

 //Настраиваем диалоговое окно TimePickerDialog:
 private TimePickerDialog.OnTimeSetListener timePickerListener =
 new TimePickerDialog.OnTimeSetListener() {
 public void onTimeSet(TimePicker view, int selectedHour,int selectedMinute) {
 hours = selectedHour;
 minutes = selectedMinute;

 //Настраиваем выбранное время в TextView:
 TimeDisplay.setText(new StringBuilder().append(pad(hours))
 .append(":").append(pad(minutes)));

 //Настраиваем выбранное время в TimePicker:
 mTimePicker.setCurrentHour(hours);
 mTimePicker.setCurrentMinute(minutes);

 }
 };
 //Для показания минут настраиваем отображение 0 впереди чисел со значением меньше 10:
 private static String pad(int c) {
 if (c >= 10)
 return String.valueOf(c);
 else
 return "0" + String.valueOf(c);
 }
}

Ну а теперь запускаем приложение и играемся с созданным приложением:

Меняем время на экране

Категория: Уроки программирования | Просмотров: 713 | Добавил: Oleg | Теги: Time Picker, настраиваем время, Android программирование | Рейтинг: 5.0/1
Всего комментариев: 0
avatar