2016-04-11 10 views
0

İki kez, yani uyarı süresi ve zamanın ayarlanmasını istiyorum. Uyarı zamanı ve zaman için iki iletişim kutusu oluşturdum. Farklı tarih nesnelerini her ikisini de ayarlamaya çalıştım. Hala uyarı zamanını değiştirdiğimde zaman da değişir. Her iki değeri de farklı kaydetmek istiyorum.Zaman seçici iletişim kutusundan zaman nasıl ayarlanır?

private int ALERT_TIME_DIALOG, ALERT_DATE_DIALOG,DUE_TIME_DIALOG,DUE_DATE_DIALOG; 
     @Override 
     public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) { 
      String hourString = hourOfDay < 10 ? "0"+hourOfDay : ""+hourOfDay; 
      String minuteString = minute < 10 ? "0"+minute : ""+minute; 
      String secondString = second < 10 ? "0"+second : ""+second; 
      String aTime,dTime; 
      SimpleDateFormat df = new SimpleDateFormat("hh:mm a"); 

      if(ALERT_TIME_DIALOG == 2) { 
       Date alertDate = new Date(); 
       mCalendar = Calendar.getInstance(); 
       mCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
       mCalendar.set(Calendar.MINUTE, minute); 
       mCalendar.set(Calendar.SECOND,0); 
       alertDate = mCalendar.getTime(); 
       aTime = df.format(alertDate); 
       alertTime.setText(aTime); 
      } 

      if(DUE_TIME_DIALOG == 4){ 
       Date dueDate = new Date(); 
       mCalendar = Calendar.getInstance(); 
       mCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
       mCalendar.set(Calendar.MINUTE, minute); 
       mCalendar.set(Calendar.SECOND,0); 
       dueDate = mCalendar.getTime(); 
       dTime = df.format(dueDate); 
       dueTime.setText(dTime); 
      } 
     } 


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

        ALERT_TIME_DIALOG = 2; 

        Calendar now = Calendar.getInstance(); 

        TimePickerDialog tpd = TimePickerDialog.newInstance(
          AddTaskActivity.this, 
          now.get(Calendar.HOUR_OF_DAY), 
          now.get(Calendar.MINUTE), 
          mHoursMode 
        ); 

        tpd.setOnCancelListener(new DialogInterface.OnCancelListener() { 
         @Override 
         public void onCancel(DialogInterface dialogInterface) { 
          Log.d("TimePicker", "Dialog was cancelled"); 
         } 
        }); 
        tpd.show(getFragmentManager(), "Timepickerdialog"); 
       } 
      }); 


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

        DUE_TIME_DIALOG = 4; 

        Calendar now = Calendar.getInstance(); 

        TimePickerDialog tpd = TimePickerDialog.newInstance(
          AddTaskActivity.this, 
          now.get(Calendar.HOUR_OF_DAY), 
          now.get(Calendar.MINUTE), 
          mHoursMode 
        ); 

        tpd.setOnCancelListener(new DialogInterface.OnCancelListener() { 
         @Override 
         public void onCancel(DialogInterface dialogInterface) { 
          Log.d("TimePicker", "Dialog was cancelled"); 
         } 
        }); 
        tpd.show(getFragmentManager(), "Timepickerdialog"); 
       } 
      }); 

Burada neyin var? Teşekkür ederiz ..

+1

Saatin kaçta değişeceğini kontrol etmek için sadece bir bayrak kullanmalısınız. –

cevap

0

Kodunuzu aşağıdaki gibi değiştirin: Hem Uyarı hem de Son tarih iletişim kutusu için iki farklı etiket belirlediniz. İşlemi tekrarladığınızda, her ikisi de, hem deyim ayarlanırsa hem de onTimeSet yönteminde ayarlanır.

private int TIME_PICKER_DIALOG_TAG; 
@Override 
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) { 
    String hourString = hourOfDay < 10 ? "0"+hourOfDay : ""+hourOfDay; 
    String minuteString = minute < 10 ? "0"+minute : ""+minute; 
    String secondString = second < 10 ? "0"+second : ""+second; 

    SimpleDateFormat df = new SimpleDateFormat("hh:mm a"); 
    mCalendar = Calendar.getInstance(); 
    mCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
    mCalendar.set(Calendar.MINUTE, minute); 
    mCalendar.set(Calendar.SECOND,0); 

    Date date = mCalendar.getTime(); 
    if(TIME_PICKER_DIALOG_TAG == 2) { 
     alertTime.setText(df.format(date)); 
    }else if(TIME_PICKER_DIALOG_TAG == 4){ 
     dueTime.setText(df.format(date)); 
    } 
} 


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

     TIME_PICKER_DIALOG_TAG = 2; 

     Calendar now = Calendar.getInstance(); 

     TimePickerDialog tpd = TimePickerDialog.newInstance(
      AddTaskActivity.this, 
      now.get(Calendar.HOUR_OF_DAY), 
      now.get(Calendar.MINUTE), 
      mHoursMode 
     ); 

     tpd.setOnCancelListener(new DialogInterface.OnCancelListener() { 
     @Override 
     public void onCancel(DialogInterface dialogInterface) { 
      Log.d("TimePicker", "Dialog was cancelled"); 
     } 
     }); 
     tpd.show(getFragmentManager(), "Timepickerdialog"); 
    } 
}); 


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

     TIME_PICKER_DIALOG_TAG = 4; 

     Calendar now = Calendar.getInstance(); 

     TimePickerDialog tpd = TimePickerDialog.newInstance(
      AddTaskActivity.this, 
      now.get(Calendar.HOUR_OF_DAY), 
      now.get(Calendar.MINUTE), 
      mHoursMode 
     ); 

     tpd.setOnCancelListener(new DialogInterface.OnCancelListener() { 
     @Override 
     public void onCancel(DialogInterface dialogInterface) { 
      Log.d("TimePicker", "Dialog was cancelled"); 
     } 
     }); 
     tpd.show(getFragmentManager(), "Timepickerdialog"); 
    } 
}); 
+0

Bu şekilde denendi. Yine de sadece uyarı zamanını değiştirir. Ben tıklama dinleyici üzerinde bayrak başlatıyorum düşünüyorum, böylece tekrar idam .. Nasıl iki kez alabilir miyim? DhavalPatel –

+0

tıklama dinleyici kodunu değiştirmeyi denediniz mi? –

+0

evet .. sonucu aldım .. Teşekkürler .. @ DhavalPatel –