【问题标题】:how to set a method only if a checkbox is selected?how to set a method only if a checkbox is selected?
【发布时间】:2016-02-01 19:59:47
【问题描述】:

这是一个棘手的问题。

我有两个复选框,我想根据是否单击复选框将一些文本附加到字符串。 例如。如果单击 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”。

您知道如何解决这种麻烦吗?可能是对/错的陈述?

【问题讨论】:

  • 我想别的 builder.setLength(builder.length() - 5);但是(1)如果我不在同一个复选框上单击两次怎么办?例如我单击 checkbox1,然后单击 checkbox2,然后再次单击 checkbox1 以取消勾选:它会删除 Checkbox1 或 Checkbox2 生成的附加项吗? (2) 如果长度是可变的怎么办?如果长度为 6 或更高,我无法擦除 -5

标签: android checkbox onclick


【解决方案1】:

你可以这样做

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

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

【讨论】:

  • Olà Thiago,为什么 rootView 能帮上忙?
  • 我在片段中使用了这段代码,rootview 是在 oncreateview 方法中膨胀的视图,对此感到抱歉....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 2022-11-20
  • 1970-01-01
相关资源
最近更新 更多