開發中經常會遇見在一個編輯框或者文本框中選擇日期,點選一個文本框彈出一個日期選擇器的元件,在此基礎上進行選擇,廢話少說,直接上代碼:
先定義兩個常量,後面選擇的時候會用到
private static final int dialog = 1 ;
private static final int dialog2 = 2 ;
定義點選事件
view.onclicklistener datatextlist = new textonclicklistener(dialog) ;
view.onclicklistener datatext2list = new text2onclicklistener(dialog2) ;
text.setonclicklistener(datatextlist);
text1.setonclicklistener(datatext2list) ;
定義顯示的對話框以及顯示的日期
public dialog oncreatedialog(int id){
calendar calendar = calendar.getinstance() ;
dialog dialog = null ;
switch(id){
case 1 :
datepickerdialog.ondatesetlistener datatextlist = new datepickerdialog.ondatesetlistener() {
@override
public void ondateset(datepicker picker, int year, int month, int dayofmonth) {
text.settext(year+"-"+(month+1)+"-"+dayofmonth) ;
}
};
dialog = new datepickerdialog(mainactivity.this, datatextlist, calendar.get(calendar.year),
calendar.get(calendar.minute), calendar.get(calendar.day_of_month)) ;
break;
case 2 :
datepickerdialog.ondatesetlistener datatext2list = new datepickerdialog.ondatesetlistener() {
public void ondateset(datepicker pick, int year, int month, int dayofmonth) {
text1.settext(year+"-"+(month+1)+"-"+dayofmonth) ;
dialog = new datepickerdialog(mainactivity.this, datatext2list, calendar.get(calendar.year),
calendar.get(calendar.month), calendar.get(calendar.day_of_month)) ;
break ;
return dialog ;
以下是實作點選事件顯示對話框
private class textonclicklistener implements view.onclicklistener{
private int dialogid = 0; //預設為0則不顯示對話框
public textonclicklistener(int dialogid) {
this.dialogid = dialogid;
}
@override
public void onclick(view view) {
showdialog(dialogid);
}
private class text2onclicklistener implements view.onclicklistener{
public text2onclicklistener(int dialogid) {