package wb.android.ui; import android.content.Context; import android.text.format.DateFormat; import android.util.AttributeSet; import android.view.View; import android.widget.EditText; import java.sql.Date; import wb.android.dialog.CalendarDialog; public class DateEditText extends EditText { private Date mDate; private Listener mListener; public interface Listener { public void onDateSet(Date date); } public DateEditText(Context context) { super(context); init(); } public DateEditText(Context context, AttributeSet attrs) { super(context, attrs); init(); } public DateEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } private void init() { mDate = null; this.setFocusableInTouchMode(false); this.setOnClickListener(new DateEditTextOnClickListener()); } public Date getDate() { return mDate; } private final class DateEditTextOnClickListener implements OnClickListener { @Override public final void onClick(final View v) { new MyCalendarDialog().buildDialog(getContext()).show(); } } private class MyCalendarDialog extends CalendarDialog { @Override @SuppressWarnings("deprecation") public void onDateSet(int day, int month, int year) { mDate = new Date(year - 1900, month, day); DateEditText.this.setText(DateFormat.getDateFormat(getContext()).format(mDate)); if (mListener != null) { mListener.onDateSet(getDate()); } } } }