2016-04-11 17 views
0

アラートタイムと期限の2つの時間を設定します。私は警戒時間と納期のために2つのダイアログを作成しました。私は、両方の時間を異なる日付オブジェクトに設定しようとしました。それでもアラートタイムを変更すると、期限が切れます。両方の値を別々に保存したい。時間ピッカーダイアログから時刻を設定する方法は?

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

ここに間違いがありますか? ありがとうございます。

+1

変更する時刻を確認するフラグは1つのみです。 –

答えて

0

以下のコードを変更してください:アラートと期限の両方のダイアログに2つの異なるタグを設定しています。あなたがこのプロセスを繰り返すときに値が設定され、onTimeSetメソッドで両方ともif文が実行されます。

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

このように試してみました。それでもアラート時間の変更のみです。私はクリックリスナーのフラグを初期化して、その実行を再開していると思う。どうすれば両方の時間ができるの?DhavalPatel –

+0

クリックリスナーコードを置き換えようとしましたか? –

+0

はい..結果を得ました..ありがとう.. @ DhavalPatel –

関連する問題