| | |
| | | import java.util.Date;
|
| | | import java.util.Locale;
|
| | |
|
| | | /**
|
| | | * Created by Sinoe on 2017/2/28.
|
| | | */
|
| | |
|
| | | public class BirthdayPickerDialog extends AlertDialog implements
|
| | | DatePicker.OnDateChangedListener{
|
| | |
|
| | |
|
| | | private static final String YEAR = "year";
|
| | | private static final String MONTH = "month";
|
| | |
| | | private boolean mTitleNeedsUpdate = true;
|
| | |
|
| | | private View view;
|
| | |
|
| | | public BirthdayPickerDialog(Context context, int theme, OnDateSetListener listener, Date date) {
|
| | | super(context,theme);
|
| | | mDateSetListener = listener;
|
| | |
| | | LayoutInflater inflater = LayoutInflater.from(themeContext);
|
| | | view = inflater.inflate(R.layout.dialog_date_picker, null);
|
| | | view.setBackgroundColor(Color.WHITE);
|
| | | //setView(view);
|
| | |
|
| | |
|
| | | // setButton(BUTTON_POSITIVE, themeContext.getString(R.string.ok), this);
|
| | | // setButton(BUTTON_NEGATIVE, themeContext.getString(R.string.cancel), this);
|
| | | // setButtonPanelLayoutHint(LAYOUT_HINT_SIDE);
|
| | |
|
| | | mDatePicker = (DatePicker) view.findViewById(R.id.datePicker);
|
| | | mDatePicker.init(mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH), this);
|
| | | // mDatePicker.setValidationCallback(mValidationCallback);
|
| | | //实现自己的标题和ok按钮
|
| | | //setTitle("选择日期:");
|
| | | setButton();
|
| | | }
|
| | |
|
| | |
| | | mDatePicker.init(year, month, day, this);
|
| | | }
|
| | |
|
| | |
|
| | | /**
|
| | | * The callback used to indicate the user is done filling in the date.
|
| | | */
|
| | | public interface OnDateSetListener {
|
| | |
|
| | | /**
|
| | | * @param view The view associated with this listener.
|
| | | * @param year The year that was set.
|
| | | * @param monthOfYear The month that was set (0-11) for compatibility
|
| | | * with {@link java.util.Calendar}.
|
| | | * @param dayOfMonth The day of the month that was set.
|
| | | */
|
| | | void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth);
|
| | | }
|
| | |
|
| | | private void setButton() {
|
| | | //获取自己定义的响应按钮并设置监听,直接调用构造时传进来的CallBack接口(为了省劲,没有自己写接口,直接用之前本类定义好的)同时关闭对话框。
|
| | | view.findViewById(R.id.date_picker_ok).setOnClickListener(
|
| | | new View.OnClickListener() {
|
| | | @Override
|
| | |
| | | }
|
| | |
|
| | | public void myShow() {
|
| | | //自己实现show方法,主要是为了把setContentView方法放到show方法后面,否则会报错。
|
| | | show();
|
| | | setContentView(view);
|
| | | }
|
| | |
|
| | | @NonNull
|
| | | @Override
|
| | | public Bundle onSaveInstanceState() {
|
| | |
| | | public void onRestoreInstanceState(Bundle savedInstanceState) {
|
| | | super.onRestoreInstanceState(savedInstanceState);
|
| | | }
|
| | |
|
| | | }
|