0

選択した時間と分数を追加したい例:午後 11 時 30 分を選択した場合、5 時 30 分が追加され、アラームが 4 時 30 分に設定されます。

どうすればこれを行うことができますか?

以下は参照するコードです:-

public class AndroidTimeActivity extends Activity {

     TimePicker myTimePicker;
     Button buttonstartSetDialog;
     Button buttonCancelAlarm;
     TextView textAlarmPrompt;

     TimePickerDialog timePickerDialog;

     final static int RQS_1 = 1;

     public static final long HOUR = 3600*1000; 

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            textAlarmPrompt = (TextView)findViewById(R.id.alarmprompt);

            buttonstartSetDialog = (Button)findViewById(R.id.startSetDialog);
            buttonstartSetDialog.setOnClickListener(new OnClickListener(){

       @Override
       public void onClick(View v) {
        textAlarmPrompt.setText("");
        openTimePickerDialog(false);

       }});

            buttonCancelAlarm = (Button)findViewById(R.id.cancel);
            buttonCancelAlarm.setOnClickListener(new OnClickListener(){

       @Override
       public void onClick(View arg0) {
        cancelAlarm();
       }});

        }

     private void openTimePickerDialog(boolean is24r){
      Calendar calendar = Calendar.getInstance();

      timePickerDialog = new TimePickerDialog(
        AndroidTimeActivity.this, 
        onTimeSetListener, 
        calendar.get(Calendar.HOUR_OF_DAY), 
        calendar.get(Calendar.MINUTE), 
        is24r);
      timePickerDialog.setTitle("Set Alarm Time");  

      timePickerDialog.show();

     }

        OnTimeSetListener onTimeSetListener
        = new OnTimeSetListener(){

      @Override
      public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

       Calendar calNow = Calendar.getInstance();
       Calendar calSet = (Calendar) calNow.clone();

       calSet.set(Calendar.HOUR_OF_DAY, hourOfDay);
       calSet.set(Calendar.MINUTE, minute);
       calSet.set(Calendar.SECOND, 0);
       calSet.set(Calendar.MILLISECOND, 0);

       if(calSet.compareTo(calNow) <= 0){
        //Today Set time passed, count to tomorrow
        calSet.add(Calendar.DATE, 1);
       }

       setAlarm(calSet);
      }};

     private void setAlarm(Calendar targetCal){

      textAlarmPrompt.setText(
        "\n\n***\n"
        + "Alarm is set@ " + targetCal.getTime() + "\n"
        + "***\n");

       System.out.println("Time is minutes:"+targetCal.getTime());

       //DateFormat newDate = new DateFormat(targetCal.getTime() + 2 * HOUR);

      Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
      PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
      AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
      alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);

     }

     private void cancelAlarm(){

      textAlarmPrompt.setText(
        "\n\n***\n"
        + "Alarm Cancelled! \n"
        + "***\n");

      Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
      PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
      AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
      alarmManager.cancel(pendingIntent);

     }
      }
4

1 に答える 1