如果选中一个特定的复选框,则执行某些操作,如果单击任何其他复选框,则执行其他操作
If a specific checkbox is check do something, if any other checkbox is clicked do something else
我正在创建这个 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;
}
}
尝试在您的 Activity 中实现 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);
并且您还应该实现 OnClickListener 接口并重写 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;
}
}
我正在创建这个 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;
}
}
尝试在您的 Activity 中实现 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);
并且您还应该实现 OnClickListener 接口并重写 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;
}
}