2016-01-14 4 views
2

здесь является частью моего кода, который включает в себя CheckBox (ChckBoxNo):OnclickListener в флажком (Android студия)

final CheckBox ChckBoxNo = (CheckBox)promptsView.findViewById(R.id.ChkBoxNo); 

            ChckBoxNo.setChecked(true); 

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

             ChckBoxNo.setChecked(false); 
              } 
              else if (!ChckBoxNo.isChecked()) 
              { 
               ChckBoxNo.setChecked(true); 
              } 
             } 
            }); 

В начале я установил верно для метода IsChecked() на мой флажок, то я установите флажок onclicklistener. Когда я запускаю приложение, этот флажок установлен как я определил eralier, но когда я нажимаю на этот флажок, он не отмечен, а затем снова проверяется снова (я еще не сделал clciked снова на флажке!) Что мне делать, чтобы исправить это , что не так в моем коде? Спасибо!

ответ

1

Вы сражаетесь с CheckBox. Это стандартное поведение, которое меняет состояние флажка, вам не нужно делать это самостоятельно.

Удалить setChecked истина и ложь, и вставить что-то ПОЛЕЗНЫЕ там вместо)

+1

И если вы просто хотите знать, когда изменяется состояние, установить OnCheckChangedListener вместо этого. –

+0

* thats привести меня к другому вопросу *: это должен быть намек на то, что вам нужно исследовать и создавать этот другой вопрос, это не форум – 2Dee

3

Checkbox будет обрабатывать «проверка» процесс автоматически - вы не должны управлять этим самостоятельно для стандартного использования.

Отъезд this example из документов. Здесь, когда происходит событие щелчка, они выполняют операции на основе состояния isChecked().

0

Вам не нужно устанавливать проверенное состояние на том же, что и в клике.

Вы снимаете ручку с некоторыми другими операциями в определенном состоянии.

0

попробовать это:

checkBox = (CheckBox) findViewById(R.id.checkBox); 
      checkBox.setChecked(checkPasswordExist()); 
      checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

       @Override 
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        if (checkBox.isChecked()) { 
         // your code to checked checkbox       
         } 
        } else { 
         // your code to no checked checkbox 
        } 
       } 
      }); 
Смежные вопросы