0

我更改了代码并listView使用single_row.xml. 我有一些工作,但我认为我的逻辑搞砸了。目标还是一样的,只允许 2 次“检查”,一旦 2 次“检查”,就阻止其他可能性true。但也要改变所做的“检查”。

例如:第一阶段

  • [X] - 1;
  • [X] - 2;
  • [ ] - 3(阻止点击)

阶段2

  • [X] - 1;
  • [] - 2;
  • [] - 3;

第三阶段

  • [X] - 1;
  • [] - 2; (阻止点击)
  • [X] - 3;

这有道理吗?

这是我的代码checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) { // TODO Auto-generated method stub
                                            // if
                if (isChecked)
                    incr++;
                if (!isChecked)
                    incr--;
                if (incr > 2){
                    Toast.makeText(context, "Somente 2 ",
                            Toast.LENGTH_LONG).show();
                        
                        buttonView.setEnabled(false);
                }

            }
        });

解决了

在这里看到了答案:如何限制可以检查的复选框数量?

和我的代码:

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

@覆盖

public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                if (isChecked && incr >= 2) {
                    checkBox.setChecked(false);
                    Toast.makeText(context, "Somente 2 ", Toast.LENGTH_LONG)
                            .show();
                } else {
                    // the checkbox either got unchecked
                    // or there are less than 2 other checkboxes checked
                    // change your counter accordingly
                    if (isChecked) {
                        incr++;
                    } else {
                        incr--;
                    }

                    // now everything is fine and you can do whatever
                    // checking the checkbox should do here
                }
            }
        });
4

2 回答 2

0

创建一个整数 var 调用它 incr,并为每个选择增加它(在 listview 侦听器上),如果值超过两个,则停止并在 toast 上显示消息,这将是一种简单而棘手的方法。

于 2014-03-28T11:24:46.347 回答
0

这不是确切的答案,但可能会对您有所帮助。xml文件 <RadioGroup android:id="@+id/types"> <RadioButton android:id="@+id/take_out" android:text="Take-Out" android:checked="true" /> <RadioButton android:id="@+id/sit_down" android:text="Sit-Down" /> <RadioButton android:id="@+id/delivery" android:text="Delivery" /> </RadioGroup>

文件

RadioGroup types=(RadioGroup)findViewById(R.id.types);

  switch (types.getCheckedRadioButtonId()) {
    case R.id.sit_down:
      r.setType("sit_down");
      break;

    case R.id.take_out:
      r.setType("take_out");
      break;

    case R.id.delivery:
      r.setType("delivery");
      break;`

关注这个官方网站

于 2014-04-01T04:25:00.933 回答