2016-12-01 92 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

或创建自定义布局和充气。

相关问题