Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果选中某个特定复选框,则单击任何其他复选框,则执行其他操作_Android_Checkbox - Fatal编程技术网

Android 如果选中某个特定复选框,则单击任何其他复选框,则执行其他操作

Android 如果选中某个特定复选框,则单击任何其他复选框,则执行其他操作,android,checkbox,Android,Checkbox,我正在创建此活动,要求用户使用复选框找到正确答案。我的布局有多个复选框,但其中一个是正确的。其主要思想是让用户尝试猜测正确答案(一个复选框)。我成功地实现了一个代码,当正确的复选框被点击时,我就可以执行一些操作,但是当用户点击任何其他复选框时,我就无法让代码正常工作 下面是我的代码(当前实现了正确的复选框,但任何其他复选框的代码都不起作用) 更新 CheckBox centerBack, checkBox1; int counts = 0; @Override protected void on

我正在创建此活动,要求用户使用复选框找到正确答案。我的布局有多个复选框,但其中一个是正确的。其主要思想是让用户尝试猜测正确答案(一个复选框)。我成功地实现了一个代码,当正确的复选框被点击时,我就可以执行一些操作,但是当用户点击任何其他复选框时,我就无法让代码正常工作

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

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;

    }

}

尝试在活动中激活元素View.OnClickListener接口。然后将以下内容添加到每个复选框:

checkBox.setOnClickListener(this);
在onClick中:

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

}

你是说下面的代码不起作用,对吗

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);
您还应该实现onClick Listener接口并重写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;
    }

}

你能检查一下上面的更新并告诉我为什么我在centerBack.setOnClickListener(这个)上出错吗;还有关于公共void onClick(视图v)?这是到目前为止我在Activity中的代码类型视图中的方法setOnClickListener(View.OnClickListener)不适用于ArgumentsId您在类中实现OnClickListener接口吗?我已经更新了问题,您能告诉我为什么centerBack.setOnClickListener(此)出现错误吗;还有关于公共void onClick(视图v)?到目前为止,这是我在活动中的代码