Android 如何防止重选复选框添加更多值

Android 如何防止重选复选框添加更多值,android,checkbox,survey,Android,Checkbox,Survey,我已经用一个问题创建了一个调查布局,然后你可以选择低于平均值、平均值或高于平均值。分数位于页面底部,点击监听器更新 我有一个问题,客户改变了他们的答案,但它没有删除以前的价值 下面是1,平均值是2,上面是3。如果你点击上面,它会增加3,然后你改变主意,想要选择平均值,你点击它,它会增加2,但永远不会删除,然后是3 帮助 我需要做什么改变或做什么才能让它工作?所有其他尝试都失败。当您选中avg32时,您可以在内部添加if-else,以检查2个复选框是否选中了…可能的重复项 below32

我已经用一个问题创建了一个调查布局,然后你可以选择低于平均值、平均值或高于平均值。分数位于页面底部,点击监听器更新

我有一个问题,客户改变了他们的答案,但它没有删除以前的价值

下面是1,平均值是2,上面是3。如果你点击上面,它会增加3,然后你改变主意,想要选择平均值,你点击它,它会增加2,但永远不会删除,然后是3

帮助


我需要做什么改变或做什么才能让它工作?所有其他尝试都失败。

当您选中
avg32
时,您可以在内部添加
if-else
,以检查2个
复选框是否选中了…可能的重复项
    below32 = (CheckBox) findViewById(R.id.below32);
    below32.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (below32.isChecked()) {
                sum += 1;      double total = 100*sum/69;
                result.setText(String.format("%.1f", total) + "%");
                avg32.setChecked(false);
                above32.setChecked(false);
            }
            else {
                sum -= 1;      double total = 100*sum/69;
                result.setText(String.format("%.1f", total) + "%");
            }
        }
    });
    avg32 = (CheckBox) findViewById(R.id.avg32);
    avg32.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (avg32.isChecked()) {
                sum += 2;      double total = 100*sum/69;
                result.setText(String.format("%.1f", total) + "%");
                below32.setChecked(false);
                above32.setChecked(false);
            }
            else {
                sum -= 2;      double total = 100*sum/69;
                result.setText(String.format("%.1f", total) + "%");
            }
        }
    });
    above32 = (CheckBox) findViewById(R.id.above32);
    above32.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (above32.isChecked()) {
                sum += 3;      double total = 100*sum/69;
                result.setText(String.format("%.1f", total) + "%");
                below32.setChecked(false);
                avg32.setChecked(false);
            }
            else {
                sum -= 3;      double total = 100*sum/69;
                result.setText(String.format("%.1f", total) + "%");
            }
        }
    });