I am trying to set multiple alarms in android studio. I set 2 arrays to save AlarmManager and PendingIntent with different request code.
Once I click button It should save a new alarm and reset previous alarm. But I don't know why the only alarm works is the the last one I set.
alarm_on.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            calendar.set(Calendar.HOUR_OF_DAY, alarm_timepicker.getHour());
            calendar.set(Calendar.MINUTE, alarm_timepicker.getMinute());
           if(alarm_array.size() == 0){
               //tell clock "alarm_on" pressed
               Intent my_intent = new Intent(MainActivity.this, Alarm_Receiver.class);
               my_intent.putExtra("extra", "on");
               pending_intent = PendingIntent.getBroadcast(MainActivity.this,
                       0, my_intent, PendingIntent.FLAG_ONE_SHOT);
               // Set the alarm manager
               alarmManagers[0] = (AlarmManager)context.getSystemService(ALARM_SERVICE);
               alarmManagers[0].set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
                       pending_intent);
               Alarm_Infor af = new Alarm_Infor(pending_intent, 0, calendar);
               alarm_array.add(af);
           }else {
               Intent my_intent = new Intent(MainActivity.this, Alarm_Receiver.class);
               my_intent.putExtra("extra", "on");
               for (int i = 0; i < alarm_array.size(); i++) {
                   // Set the alarm manager
                   alarmManagers[i] = (AlarmManager)context.getSystemService(ALARM_SERVICE);
                   alarmManagers[i].set(AlarmManager.RTC_WAKEUP, alarm_array.get(i).getCalendar().getTimeInMillis(),
                           alarm_array.get(i).getPending_intent());
               }
               pending_intent = PendingIntent.getBroadcast(MainActivity.this,
                       alarm_array.size(), my_intent, PendingIntent.FLAG_ONE_SHOT);
               alarmManagers[alarm_array.size()] = (AlarmManager)context.getSystemService(ALARM_SERVICE);
               alarmManagers[alarm_array.size()].set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pending_intent);
               Alarm_Infor af = new Alarm_Infor(pending_intent, alarm_array.size(),calendar);
               alarm_array.add(af);
           }
 
    