1.简介
DatePickerDialog可以弹出一个对话框来供用户选择日期。一般使用下面这个构造函数获取DatePickerDialog对象(第一个参数是设备上下文,不能为null;第二个参数是监听器(实现DatePickerDialog.OnDateSetListener接口,可以为null);第三个参数是弹出对话框的初始年;第四个参数是弹出对话框的初始月(0-11,获取月份时记得加一);第五个参数是弹出对话框的初始日)。
public DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener listener, int year, int month, int dayOfMonth)
使用步骤:
- 获取DatePickerDialog对象
- 调用DatePickerDialog的show方法显示DatePickerDialog。例子如下(DatePickerDialogActivity.this实现了DatePickerDialog.OnDateSetListener接口)。
Calendar calendar = Calendar.getInstance();
//第一个参数是设备上下文 第二个参数是监听类(实现DatePickerDialog.OnDateSetListener接口)
DatePickerDialog datePickerDialog = new DatePickerDialog(DatePickerDialogActivity.this, DatePickerDialogActivity.this, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH)
, calendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
2.使用例子
创建DatePickerDialogActivity。
- activity_date_picker_dialog_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DatePickerDialogActivity"
android:orientation="vertical"
android:padding="10dp">
<Button
android:id="@+id/btn_pop_date_picker_dialog"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="DatePickerActivity"/>
</LinearLayout>
- DatePickerDialogActivity.java
package xyz.strasae.androidlearn.senior;
import androidx.appcompat.app.AppCompatActivity;
import android.app.DatePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.Toast;
import java.util.Calendar;
public class DatePickerDialogActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_date_picker_dialog);
findViewById(R.id.btn_pop_date_picker_dialog).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar calendar = Calendar.getInstance();
//第一个参数是设备上下文 第二个参数是监听类(实现DatePickerDialog.OnDateSetListener接口),
DatePickerDialog datePickerDialog = new DatePickerDialog(DatePickerDialogActivity.this, DatePickerDialogActivity.this, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH)
, calendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
}
});
}
@Override
//第二、三、四个参数是年、月(0-11)、日
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
Toast.makeText(this, "你选择的日期是" + i + "年" + (i1+1) + "月" + i2 + "日", Toast.LENGTH_SHORT).show();
}
}