Пример выбора даты в Android
В Android вы можете использовать класс «http://developer.android.com/reference/android/widget/DatePicker.html[android.widget.DatePicker]», чтобы отобразить компонент выбора даты, чтобы выбрать день, месяц и год в предопределенный пользовательский интерфейс.
В этом руководстве мы покажем вам, как визуализировать компонент выбора даты на текущей странице черезandroid.widget.DatePicker, а также в диалоговом окне черезandroid.app.DatePickerDialog. Кроме того, мы также покажем вам, как установить дату в компоненте выбора даты.
P.S This project is developed in Eclipse 3.7, and tested with Android 2.3.3.
1. DatePicker
Откройте файл «res/layout/main.xml», добавьте средство выбора даты, метку и кнопку для демонстрации.
Файл: res / layout / main.xml
P.S The “DatePickerDialog” is declare in code, not XML.
2. Код код
Прочитайте комментарий к коду, он должен быть понятен.
Файл: MyAndroidAppActivity.java
package com.example.android;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
public class MyAndroidAppActivity extends Activity {
private TextView tvDisplayDate;
private DatePicker dpResult;
private Button btnChangeDate;
private int year;
private int month;
private int day;
static final int DATE_DIALOG_ID = 999;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setCurrentDateOnView();
addListenerOnButton();
}
// display current date
public void setCurrentDateOnView() {
tvDisplayDate = (TextView) findViewById(R.id.tvDate);
dpResult = (DatePicker) findViewById(R.id.dpResult);
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
// set current date into textview
tvDisplayDate.setText(new StringBuilder()
// Month is 0 based, just add 1
.append(month + 1).append("-").append(day).append("-")
.append(year).append(" "));
// set current date into datepicker
dpResult.init(year, month, day, null);
}
public void addListenerOnButton() {
btnChangeDate = (Button) findViewById(R.id.btnChangeDate);
btnChangeDate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
return new DatePickerDialog(this, datePickerListener,
year, month,day);
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener
= new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
year = selectedYear;
month = selectedMonth;
day = selectedDay;
// set selected date into textview
tvDisplayDate.setText(new StringBuilder().append(month + 1)
.append("-").append(day).append("-").append(year)
.append(" "));
// set selected date into datepicker also
dpResult.init(year, month, day, null);
}
};
}
P.S The “DatePickerDialog” example above, is referenced from Google Android date picker example, с небольшими изменениями.
3. Demo
Запустите приложение.
1. Результат, «Выбор даты» и «Просмотр текста» установлены на текущую дату.

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

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

Скачать исходный код
Скачать -Android-DatePicker-Example.zip (16 КБ)