如果选中复选框,如何设置方法?

时间:2015-11-02 00:53:34

标签: android checkbox onclick

这是一个棘手的问题。

我有两个复选框,我想根据是否单击复选框将一些文本附加到字符串。 例如。如果单击checkbox1,则将“A”添加到字符串“result” 如果单击checkbox2,则会将“B”添加到字符串“result”

我尝试了几种不同的方法,显然最接近的方法是onClick。

final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox);
    checkBox1.setChecked(false);

    checkBox1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (checkBox1.isChecked()) {
                builder.append(value1).append("\n");
                Toast.makeText(MainActivity.this, "item selected", Toast.LENGTH_LONG).show();
            }
            else {
                builder.append("");
            }
        }
    });

    final CheckBox checkBox2 = (CheckBox) findViewById(R.id.checkBox2);
    checkBox2.setChecked(false);

    checkBox2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (checkBox2.isChecked()) {
                builder.append(value2).append("\n");
                Toast.makeText(MainActivity.this, "item selected", Toast.LENGTH_LONG).show();
            } else {
                builder.append("");
            }
        }
    });

我也尝试了onChangedState或类似的东西,但它不能用于我的目的。

按照正常行为,如果我点击一次,我会追加“A”,如果点击两次,我会追加“”。 然而,如果我点击三次,我会追加“A”“A”,而不仅仅是“A”。

关于如何解决这种麻烦的任何想法?可能是一些真/假的陈述?

1 个答案:

答案 0 :(得分:0)

你可以这样做

CheckBox Check = (CheckBox) rootView.findViewById(R.id.Finalizado);
            boolean isChecked =  Check.isChecked();

if(isChecked)
{
   //doStuff...
}
else
{
  //doAnotherStuff...
}