Показать все настройки будильника в другой деятельности
Я новичок в изучении Android. И у меня уже есть будильник, и он работает, но его можно установить только один раз. Я знал это из-за номера запроса PendingIntent. Я не знаю, как изменить идентификатор каждый раз, потому что мне нужно нажать кнопку, чтобы установить будильник. Поэтому я не могу использовать "для", чтобы изменить идентификатор.
Моя цель - создать еще одно действие для отображения всех сигналов, которые я установил в listView. И затем я пытаюсь использовать "комплект", чтобы поместить все мои данные, такие как идентификатор, часы и минуты, в другое действие, и это работает. Но, похоже, это неправильный путь. SharedPreferences работает для этого?
Любая помощь будет оценена!!!
AlarmActivity.class
public class AlarmActivity extends AppCompatActivity {
AlarmManager alarmManager;
TimePicker alarm_timePicker;
TextView update_text;
Context context;
PendingIntent pending_intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
this.context = this;
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarm_timePicker = (TimePicker) findViewById(R.id.timePicker);
update_text = (TextView) findViewById(R.id.update_text);
final Calendar calendar = Calendar.getInstance();
final Intent my_intent = new Intent(AlarmActivity.this, AlarmReceiver.class);
final Button alarm_on = (Button)findViewById(R.id.onAlarm);
alarm_on.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calendar.set(calendar.HOUR_OF_DAY, alarm_timePicker.getHour());
calendar.set(calendar.MINUTE, alarm_timePicker.getMinute());
calendar.set(calendar.SECOND, 0);
int hour = alarm_timePicker.getHour();
int minute = alarm_timePicker.getMinute();
String hours_string = String.valueOf(hour);
String minute_string = String.valueOf(minute);
set_alarm_text("Set Alarm to: " + hours_string + ":" + minute_string);
pending_intent = PendingIntent.getBroadcast(AlarmActivity.this, 0,
my_intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pending_intent);
AlertDialog.Builder on_alarm_builder = new AlertDialog.Builder(AlarmActivity.this);
final String finalHours_string = hours_string;
final String finalMinute_string = minute_string;
on_alarm_builder.setTitle("Set Alarm to: " + hours_string + ":" + minute_string)
.setPositiveButton("Ok..", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Bundle bundle = new Bundle();
bundle.putInt("id", _id);
bundle.putString("hour", finalHours_string);
bundle.putString("minute", finalMinute_string);
Toast.makeText(getApplicationContext(), " id: "+ _id + " hour: " + finalHours_string + " minute: " + finalMinute_string,
Toast.LENGTH_SHORT).show();
Intent check_alarm = new Intent(AlarmActivity.this, CheckalarmActivity.class);
check_alarm.putExtras(bundle);
startActivity(check_alarm);
}
});
AlertDialog on_alarm = on_alarm_builder.create();
on_alarm.show();
}
});
Button alarm_off = (Button) findViewById(R.id.offAlarm);
alarm_off.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
set_alarm_text("Alarm_off");
alarmManager.cancel(pending_intent);
AlertDialog.Builder off_alarm_builder = new AlertDialog.Builder(AlarmActivity.this);
off_alarm_builder.setTitle("Alarm off")
.setPositiveButton("Ok..", null);
AlertDialog off_alarm = off_alarm_builder.create();
off_alarm.show();
}
});
}
private void set_alarm_text(String output) {
update_text.setText(output);
}