简易的日期弹窗,可将其封装到帮助类中
1、无清除按钮,只能选择日期
//可使用日期格式化
protected Dialog showDialogl(TextView rq) {
String txrq = rq.getText().toString();
String[] rqd;
Calendar ca = Calendar.getInstance();
int mYear = ca.get(Calendar.YEAR);
int mMonth = ca.get(Calendar.MONTH);
int mDay = ca.get(Calendar.DAY_OF_MONTH);
if (!ScanToolsUtils.isNullOrEmpty(txrq)) {
rqd = txrq.split("-");
mYear = Integer.parseInt(rqd[0]);
mMonth = Integer.parseInt(rqd[1]) - 1;
mDay = Integer.parseInt(rqd[2]);
}
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
String data = year + "-" + (month + 1) + "-" + dayOfMonth;
rq.setText(data);
}
},
mYear, mMonth, mDay);
datePickerDialog.show();
return datePickerDialog;
}
点击日期文本框调用弹窗
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Dialog dialog = showDialogl(tv);
dialog.show();
}
});
2、可进行日期清除,使用AlertDialog来包装DatePicker,并添加一个清除按钮。
private void showDialogl(TextView rq) {
String txrq = rq.getText().toString();
String[] rqd;
Calendar ca = Calendar.getInstance();
int mYear = ca.get(Calendar.YEAR);
int mMonth = ca.get(Calendar.MONTH);
int mDay = ca.get(Calendar.DAY_OF_MONTH);
if (!ScanToolsUtils.isNullOrEmpty(txrq)) {
rqd = txrq.split("-");
mYear = Integer.parseInt(rqd[0]);
mMonth = Integer.parseInt(rqd[1]) - 1;
mDay = Integer.parseInt(rqd[2]);
}
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
String data = year + "-" + (month + 1) + "-" + dayOfMonth;
rq.setText(data);
}
},
mYear, mMonth, mDay);
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("选择日期")
.setView(datePickerDialog.getDatePicker())
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
datePickerDialog.onClick(dialog, DialogInterface.BUTTON_POSITIVE);
}
})
.setNegativeButton("清除", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
rq.setText("");
}
});
builder.show();
}
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showDialogl(tv);
}
});