2016-04-11 4 views
0

Ich möchte zweimal festlegen, d. H. Alarmzeit und fällige Zeit. Ich habe zwei Dialoge für Alarmzeit und Fälligkeit erstellt. Ich habe versucht, beide Zeiten in verschiedenen Datumsobjekten einzustellen. Immer noch, wenn ich die Alarmzeit ändere, wird auch die fällige Zeit geändert. Ich möchte beide Werte anders speichern.Wie stelle ich die Zeit vom Zeitauswahldialog ein?

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

Was ist hier falsch? Vielen Dank.

+1

Sie sollten nur ein Flag verwenden, um zu überprüfen, welche Uhrzeit Sie ändern möchten. –

Antwort

0

Ändern Sie Ihren Code wie folgt: Sie haben zwei verschiedene Tags für den Dialog "Alert" und "Fälligkeitsdatum" festgelegt. SO, wenn Sie den Prozess wiederholen, wird der Wert gesetzt und in onTimeSet Methode sowohl wenn Anweisung ausgeführt werden.

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

Versucht auf diese Weise. Es ändert immer noch nur die Zeit der Alarmzeit. Ich denke, ich initialisiere Flag auf Klick-Listener, so dass es immer wieder ausgeführt wird .. Wie kann ich beide Male haben DhavalPatel –

+0

haben Sie versucht, click listener code zu ersetzen? –

+0

ja .. hat das Ergebnis .. Vielen Dank .. @ Dhavalpatel –

Verwandte Themen