Главная » Работаем с 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);
}
}
Ну а теперь запускаем приложение и играемся с созданным приложением: | |
|
Всего комментариев: 0 | |