2016-04-11 61 views
1

如何获取选定的时间值而不显示timePicker对话框?获取timePicker值而不显示timePicker对话框

下面的图片是我的闹钟设计布局。当点击按钮时,我希望它显示所选值而不是弹出timePicker对话框。

enter image description here

alarm.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       showDialog(TIME_DIALOG_ID); 
      } 
     }); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
      case TIME_DIALOG_ID: 

       // set time picker as current time 
       return new TimePickerDialog(this, timePickerListener, hour, minute, 
         false); 
     } 
     return null; 
    } 

    private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() { 

     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minutes) { 
      // TODO Auto-generated method stub 
      hour = hourOfDay; 
      minute = minutes; 
      updateTime(hour,minute); 
     } 
    }; 

    // Used to convert 24hr format to 12hr format with AM/PM values 
    private void updateTime(int hours, int mins) { 

     String timeSet = ""; 
     if (hours > 12) { 
      hours -= 12; 
      timeSet = "PM"; 
     } else if (hours == 0) { 
      hours += 12; 
      timeSet = "AM"; 
     } else if (hours == 12) 
      timeSet = "PM"; 
     else 
      timeSet = "AM"; 


     String minutes = ""; 
     if (mins < 10) 
      minutes = "0" + mins; 
     else 
      minutes = String.valueOf(mins); 

     // Append in a StringBuilder 
     String aTime = new StringBuilder().append(hours).append(':') 
       .append(minutes).append(" ").append(timeSet).toString(); 

     Toast.makeText(getApplicationContext(),aTime,Toast.LENGTH_LONG).show(); 
    } 
} 

我应该在哪里的按钮来更改点击?谢谢。

回答

0

里面点击按钮,删除

showDialog(TIME_DIALOG_ID);

int hour = alarmTimePicker.getCurrentHour(); 
int min = alarmTimePicker.getCurrentMinute(); 
updateTime(hour,min); 

的alarmTimePicker是跟随在您使用初始化timePickertimePicker名称替换。

例如:不需要

TimePicker alarmTimePicker = (TimePicker) findViewById(R.id.timePicker); 

删除,因为对话框下面的代码。

@Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
      case TIME_DIALOG_ID: 

       // set time picker as current time 
       return new TimePickerDialog(this, timePickerListener, hour, minute, 
         false); 
     } 
     return null; 
    } 

    private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() { 

     @Override 
     public void onTimeSet(TimePicker view, int hourOfDay, int minutes) { 
      // TODO Auto-generated method stub 
      hour = hourOfDay; 
      minute = minutes; 
      updateTime(hour,minute); 
     } 
    };