2016-01-20 4 views
-1

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

Почему это происходит?

код:

mcbComputations.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (mcbComputations.isChecked()) { 
      mATComputations = new ATComputations(); 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
       mATComputations.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
      } else { 
       mATComputations.execute(); 
      } 
     } else { 
      mATComputations.cancel(true); 
     } 
+0

'mcbComputations' означает' CheckBox'? – Piyush

+0

@PiyushGupta да – LetsamrIt

+0

'onCheckChanged' должен использоваться для захвата выбранного состояния. –

ответ

3

При работе с Checkbox, а использовать onCheckChangedListener:

 mcbComputations.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

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

        mATComputations = new ATComputations(); 
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
         mATComputations.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
        } else { 
         mATComputations.execute(); 
        } 

       } else { 
        mATComputations.cancel(true); 
       } 
      } 
     }); 
3

Использование

setOnCheckedChangeListener 

вместо

setOnClickListener 

для CheckBox

Смежные вопросы