ユーザーから複数の「n」回の入力を受け取り、それらの特定の時間に鳴るアラームアプリケーションを作成しようとしています。そのために、時間と分のエントリの両方に EditText の配列を作成しました。開始ボタンの onclick リスナーで、入力されたすべての時間入力のアラーム マネージャーを初期化したいと考えています。
カレンダーの配列を作成した後、カレンダー オブジェクトごとに 1 つずつ、インテントと保留中のインテント、およびアラーム マネージャー オブジェクトの配列も作成する必要がありますか?
これは私のスタートボタンのコードです:
public void setAlert(View view) {
int length = editHour.length;
int h[] = new int[length];
int m[] = new int[length];
Calendar[] cal = new Calendar[length];
for (int i = 0; i < length; i++) {
cal[i] = Calendar.getInstance();
}
for (int i = 0; i < length; i++) {
try {
m[i] = Integer.parseInt(editHour[i].getText().toString());
h[i] = Integer.parseInt(editMinute[i].getText().toString());
cal[i].set(Calendar.HOUR, h[i]);
cal[i].set(Calendar.MINUTE, m[i]);
Intent intent = new Intent(this, AlarmService.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
12345, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,
cal[i].getTimeInMillis(), pendingIntent);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
} catch (Exception ex) {
ex.printStackTrace();
System.out.print("OOPS!");
}
}
}