Показать все настройки будильника в другой деятельности

Я новичок в изучении 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);
    }

0 ответов

Другие вопросы по тегам