IsChecked () возвращает истину, если переключатель не установлен

голоса
0

Я использовал его для включения уведомлений. Я хочу, чтобы сохранить уведомления, если переключатель проверяется т.е. уведомление о.

Но если я на коммутаторе и снова выключить переключатель и сохранить событие. Затем также уведомление становится установлено.

Как я отладить на if(isChecked() == true), он возвращает истину , если я и выключать переключатель один раз. Если я не изменить состояние переключателя она возвращает ложь.

Что не так?

 notify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                                     boolean isChecked) {

            if (isChecked) {

                linearSelectTime.setEnabled(true);
                linearSelectTime.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        final AlertDialog.Builder builder = new AlertDialog.Builder(AddEventActivity.this);

                        int selected = 0;

                        builder.setSingleChoiceItems(R.array.time_array, selected,
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int item) {

                                        String[] time = getBaseContext().getResources().getStringArray(R.array.time_array);

                                        notifyTime.setText(time[item]);

                                        notificationTime = time[item];

                                        dialog.dismiss();
                                    }
                                });
                        builder.show();
                    }

                });
            } else {

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

                notificationTime = ;
                notifyText.setVisibility(View.INVISIBLE);
                linearSelectTime.setEnabled(false);
            }

        }
    });

при сохранении:

                        if (notify.isChecked()) {
                            setNotificationTime(c);

                        }

Что происходит здесь не так.?

Задан 08/03/2016 в 08:25
источник пользователем
На других языках...                            


1 ответов

голоса
3

OnCheckedChangeListener не работает должным образом большую часть времени. Сначала установите OnClickListener на свой флажок и в этом использовании метода IsChecked для ПолучитьЗначения вашего флажка, как это

    checkBox.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    if (checkBox.isChecked())
    {

    }else {

    }
   }
  });
Ответил 08/03/2016 в 08:30
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more