2013-09-06 1 views
0

В настоящее время вы пытаетесь получить два разных значения из напоминания о выборе времениHour, который является выбраннымHour и напоминаниемMin, который является выбранным. Думал, что он отлично работал, но утром обнаружил другую ошибку.Невозможно форматировать время из Time Picker

eReminderTime.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       Calendar mcurrentTime = Calendar.getInstance(); 
       int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY); 
       int minute = mcurrentTime.get(Calendar.MINUTE); 
       TimePickerDialog mTimePicker; 
       mTimePicker = new TimePickerDialog(AddPayment.this, new TimePickerDialog.OnTimeSetListener() { 
        @Override 
        public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) { 



         reminderHour = selectedHour; 
         reminderMin = selectedMinute; 


         if (selectedHour < 10) 
         { 
          if(selectedMinute == 0) 
          { 
           eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute); 
          } 
          else if(selectedMinute < 10) 
          { 
           eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute); 
          } 
          else 
          { 
           eReminderTime.setText("0" + selectedHour + ":" + selectedMinute); 
          } 
         } 

         if (selectedHour == 0) 
         { 
          if(selectedMinute == 0) 
          { 
           eReminderTime.setText("0" + selectedHour + ":00" + selectedMinute); 
          } 
          else if(selectedMinute < 10) 
          { 
           eReminderTime.setText("0" + selectedHour + ":0" + selectedMinute); 
          } 
          else 
          { 
           eReminderTime.setText("0" + selectedHour + ":" + selectedMinute); 
          } 
         } 

         if(selectedMinute == 0) 
         { 
          eReminderTime.setText("" + selectedHour + ":00" + selectedMinute); 
         } 
         if(selectedMinute < 10) 
         { 
          eReminderTime.setText("" + selectedHour + ":0" + selectedMinute); 
         } 
         else 
         { 
          eReminderTime.setText("" + selectedHour + ":" + selectedMinute); 
         } 


        } 
       }, hour, minute, true); 

       mTimePicker.setTitle("Select Time"); 
       mTimePicker.show(); 

      } 
     }); 

Это код для моего выбора времени. Я не хочу, чтобы время объединилось, потому что мне нужно значение часа, которое хранится отдельно от минутного значения.

Я пробовал искать SimpleDateFormat, но я не мог заставить его работать. Это код, который я попытался

    SimpleDateFormat simpleHour = new SimpleDateFormat("kk"); 
        SimpleDateFormat simpleMin = new SimpleDateFormat("mm"); 

        formatHour = simpleHour.format(selectedHour); 
        formatMin = simpleMin.format(selectedMinute); 

        reminderHour = Integer.parseInt(formatHour); 
        reminderMin = Integer.parseInt(formatMin); 

        Toast.makeText(getApplicationContext(), formatHour, 0).show(); 
        Toast.makeText(getApplicationContext(), formatHour, 0).show(); 

ответ

0

Это потому, что отдельные чч и мм не являются допустимыми форматами. Попытайтесь совместить значения минут и часов вместе, и когда вы получите общее значение, разделите их на split()

e.g;

SimpleDateFormat simpleHour= new SimpleDateFormat("hh:mm"); 
String strTime = sdf.format(new Date()); 
String[] pieces=strTime.split(":"); 
Log.i("Hour: ",pieces[0]); 
Log.i("Miniute: ",pieces[1]); 
+0

Под редакцией моего поста, первоначально был кк в течение часа, это что он показал на странице Java для SimpleDateFormat –

+0

, что вы получили? например, если ошибка, имя ошибки? –

+0

С kk за час и мм за мин, я получил 00, 01, 00, 01 напечатал. Думаю –

0

Какой результат вы хотите точно? Если это просто что-то вроде:

01:32

Тогда просто создать строку самостоятельно, а не беспокоиться о форматах даты и т.д.

//Add leading zeros if required 
String hours = (String) ((selectedHour < 10) ? "0" + selectedHour 
              : Integer.toString(selectedHour)); 
String minutes = (String) ((selectedMinute < 10) ? "0" + selectedMinute 
              : Integer.toString(selectedMinute)); 
String prettyTime = hours + ":" + minutes; 
+0

Да, 24 выход hh: mm, поэтому 17:00 будет 17:00. Что это '?' означает в этом коде? –

+0

Это «тройной оператор». В принципе, вы можете читать '?' As ", если предыдущее выражение истинно, тогда значение равно" и ":' как "else значение равно". –

+0

Это должно обеспечить время в виде 24-часовой строки по мере необходимости. –