2016-12-01 96 views
0

我嘗試獲取用戶安排會議的開始日期和時間。 當我點擊我的ed_start_date時,一個DatePicker和一個TimePicker逐個顯示出來。 我的問題是:我怎樣才能做到這一點更簡單地比,我怎麼能存儲選擇插入SQLite數據庫的價值...... TKS諮詢啓動日期時間事件Android Studio

的東西,將適合右擊是集starDateTime和谷歌日曆輸入stopDateTime

if (v == ed_start_date) { 
     final Calendar c = Calendar.getInstance(); 
     startYear = c.get(Calendar.YEAR); 
     startMonth = c.get(Calendar.MONTH); 
     startDay = c.get(Calendar.DAY_OF_MONTH); 
     startHour = c.get(Calendar.HOUR_OF_DAY); 
     startMinute = c.get(Calendar.MINUTE); 

     DatePickerDialog datePickerDialog = new DatePickerDialog(this, 
       new DatePickerDialog.OnDateSetListener() { 

        @Override 
        public void onDateSet(DatePicker view, int year, 
              int monthOfYear, int dayOfMonth) { 
        if(year>=startYear & monthOfYear>=startMonth &   dayOfMonth>=startDay) 
         ed_start_date.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); 
         else 
         Toast.makeText(MeetingsAddEditActivity.this, "Selected date can not be less than current date!", Toast.LENGTH_SHORT).show(); 
        } 
       }, startYear, startMonth, startDay); 
     datePickerDialog.show(); 

     TimePickerDialog timePickerDialog = new TimePickerDialog(this, 
       new TimePickerDialog.OnTimeSetListener() { 

        @Override 
        public void onTimeSet(TimePicker view, int hourOfDay, 
              int minute) { 
         if(hourOfDay>startHour) 
          ed_start_date.append(hourOfDay + ":" + minute); 
         else 
          Toast.makeText(MeetingsAddEditActivity.this, "Selected time can not be less than current time!", Toast.LENGTH_SHORT).show(); 
        } 
       }, startHour, startMinute, false); 
     timePickerDialog.show(); 

     } 


    if (v == ed_stop_date) { 

     final Calendar c = Calendar.getInstance(); 
     stopYear = c.get(Calendar.YEAR); 
     stopMonth = c.get(Calendar.MONTH); 
     stopDay = c.get(Calendar.DAY_OF_MONTH); 
     stopHour = c.get(Calendar.HOUR_OF_DAY); 
     stopMinute = c.get(Calendar.MINUTE); 

     DatePickerDialog datePickerDialog = new DatePickerDialog(this, 
       new DatePickerDialog.OnDateSetListener() { 

        @Override 
        public void onDateSet(DatePicker view, int year, 
              int monthOfYear, int dayOfMonth) { 
         if(year==startYear & monthOfYear==startMonth & dayOfMonth==startDay) 
          ed_stop_date.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); 
         else 
          Toast.makeText(MeetingsAddEditActivity.this, "Selected date can not be different than start date!", Toast.LENGTH_SHORT).show(); 
        } 
       }, stopYear, stopMonth, stopDay); 
     datePickerDialog.show(); 


     TimePickerDialog timePickerDialog = new TimePickerDialog(this, 
       new TimePickerDialog.OnTimeSetListener() { 

        @Override 
        public void onTimeSet(TimePicker view, int hourOfDay, 
              int minute) { 
         if(hourOfDay>=startHour) 
          ed_stop_date.setText(hourOfDay + ":" + minute); 
         else 
          Toast.makeText(MeetingsAddEditActivity.this, "Selected time can not be less than start time!", Toast.LENGTH_SHORT).show(); 
        } 
       }, stopHour, stopMinute, false); 
     timePickerDialog.show(); 
    } 

回答

0

我覺得去這將是創建既包括timepicker和日期選擇器自定義對話框的最佳方式。這樣用戶可以在解散前在同一個對話框中設置日期和時間。

最簡單的方法可能是使用這樣的庫作爲https://github.com/afollestad/material-dialogs

或創建自定義佈局和充氣。

相關問題