package cn.com.basic.face.dialog; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.NonNull; import android.view.LayoutInflater; import android.view.View; import android.widget.DatePicker; import com.bsk.zhangbo.demoforbsk.R; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class BirthdayPickerDialog extends AlertDialog implements DatePicker.OnDateChangedListener{ private static final String YEAR = "year"; private static final String MONTH = "month"; private static final String DAY = "day"; private final DatePicker mDatePicker; private final OnDateSetListener mDateSetListener; private final Calendar mCalendar; private boolean mTitleNeedsUpdate = true; private View view; public BirthdayPickerDialog(Context context, int theme, OnDateSetListener listener, Date date) { super(context,theme); mDateSetListener = listener; mCalendar = Calendar.getInstance(Locale.CHINA); mCalendar.setTime(date); Context themeContext = getContext(); LayoutInflater inflater = LayoutInflater.from(themeContext); view = inflater.inflate(R.layout.dialog_date_picker, null); view.setBackgroundColor(Color.WHITE); mDatePicker = (DatePicker) view.findViewById(R.id.datePicker); mDatePicker.init(mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH), this); setButton(); } @Override public void onDateChanged(DatePicker datePicker, int year, int month, int day) { mDatePicker.init(year, month, day, this); } public interface OnDateSetListener { void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth); } private void setButton() { view.findViewById(R.id.date_picker_ok).setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if (mDateSetListener != null) { // Clearing focus forces the dialog to commit any pending // changes, e.g. typed text in a NumberPicker. mDatePicker.clearFocus(); mDateSetListener.onDateSet(mDatePicker, mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth()); cancel(); } } }); view.findViewById(R.id.date_picker_cancle).setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { cancel(); } }); } public void myShow() { show(); setContentView(view); } @NonNull @Override public Bundle onSaveInstanceState() { return super.onSaveInstanceState(); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); } }