首次点击后选中复选框

时间:2014-10-07 12:17:38

标签: android checkbox

我正在动态创建一些复选框。我想一次只检查一个复选框。我已经使用setChecked(false)方法实现了这一点。它运行正常,问题是当我取消选中第一个复选框并单击第二个时,然后在第二次检查它。我想要它要在第一时间检查。

我用过的代码 -

 cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() 
 {
   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked)
   {
      Log.e("isChecked",""+isChecked);
      if(isChecked==true)
      {
        count++;
        sendData(j);

        if(count>1)
        {
            //cb[i].setChecked(false);
            buttonView.setChecked(false);
            count=0;
        }
     }
  };

3 个答案:

答案 0 :(得分:0)

删除..

  if(isChecked==true)

在此之后,我认为它将按照您的要求运作......

答案 1 :(得分:0)

您需要根据countcheck 点击次数使用uncheck变量 -

试试这个 -

int i;
int count = 0;
for (i = 0; i < 10; i++) {
    CheckBox cb = new CheckBox(this);
    cb.setTag(Integer.valueOf(i));
    cb.setText("CheckBox " + i);
    cb.setChecked(false);
    cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            Log.e("isChecked",""+isChecked);

            if (isChecked) {
                count++;
            } else {
                count--;
            }

            if (count > 1) {
                buttonView.setChecked(false);
                count--;
            }
        }
    });
}

答案 2 :(得分:0)

@neha试试这个...

@Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
                {
                    if(isChecked)
                    {
                        if(count==0)
                        {
                            count++;
                            Toast.makeText(MainActivity.this, "count="+count, 0).show();
                            return;
                        }
                        buttonView.setChecked(false);
                    }
                    else
                    {
                        count--;
                        Toast.makeText(MainActivity.this, "count="+count, 0).show();
                        return;
                    }
                }