2016-04-11 17 views
1

timePickerダイアログを表示せずに選択した時間値を取得するにはどうすればよいですか?timePickerダイアログを表示せずにtimePicker値を取得

以下は、私のアラームデザインのレイアウトです。ボタンをクリックすると、popup 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あなたはtimePickerを初期化するために使用timePicker名の後にあると交換してください。

例:

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); 
     } 
    };