android - 如果选中一个特定的复选框,则执行某些操作,如果单击任何其他复选框,则执行其他操作

标签 android checkbox

我正在创建此 Activity ,要求用户使用复选框找到正确答案。我的布局有多个复选框,但其中一个是正确的。主要思想是给用户 3 次尝试猜测正确答案(一个复选框)。我设法实现了一个代码,当单击正确的复选框来执行某些操作时,但是当用户单击任何其他复选框时我无法使代码工作。

我的代码在下面(目前实现了正确的复选框,但任何其他复选框的代码都不起作用) 更新

CheckBox centerBack, checkBox1;
int counts = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tennis_facts);


    CheckBox centerBack = (CheckBox) findViewById(R.id.centerBack);
    CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox1);
    centerBack.setOnClickListener(this);
    checkBox1.setOnClickListener((this);
}
@Override
public void onClick(View v) {
    switch (v.getId()){
         case R.id.centerBack: 
              Toast.makeText(getApplicationContext(), "correct", Toast.LENGTH_SHORT).show();
              break;
          case R.id.checkBox1:
              Toast.makeText(getApplicationContext(), "incorrect", Toast.LENGTH_SHORT).show();
              break;

    }

}

最佳答案

你的意思是下面这些代码不起作用,对吧?

else{
            counts ++;
            DisplayToast("Incorrect Answer" + counts);
    }

因为您通过代码仅为此复选框设置了监听器:

checkBox.setOnClickListener(new View.OnClickListener());

其他复选框尚未设置 setOnClickListener。这就是为什么当其他复选框选中时,Android 没有收到此事件的原因

应该做的:

checkBox.setOnClickListener(this);
checkBox2.setOnClickListener(this);
checkBox3.setOnClickListener(this);
checkBox4.setOnClickListener(this);

你还应该像下面这样实现 OnClickListener 接口(interface)并覆盖 onClick 方法:

@Override
public void onClick(View v) {
    switch (v.getId()){
         case R.id.checkBox: 
              //your code:
              break;
          case R.id.checkBox2:
              //your code:
              break;
           case R.id.checkBox3:
              //your code:
              break;
           case R.id.checkBox4:
              //your code:
              break;
    }

}

关于android - 如果选中一个特定的复选框,则执行某些操作,如果单击任何其他复选框,则执行其他操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053276/

相关文章:

android - Android Studio 3.0 的 res 目录中的 mipmap-anydpi-v26 是什么?

android - 如何从 Delphi 访问 KeyCharacterMap.getEvents 函数返回的元素?

android - 无法通过我的 GLSurfaceView 获取 AdView

javascript - 将复选框链接到 Vue.js 中的列表项

css - 如何对齐来自 collection_check_boxes 的输入和标签?

javascript - 如何根据选中的复选框数量显示/隐藏元素?

c# - 如果一个复选框被选中,则将另一个复选框设置为未选中

android - 如何为所有设备加载动画?

html - 添加 Bootstrap 切换时,链接内的复选框行为错误

java - 如何将捕获的异常与异步任务android中的标准异常进行比较?