Java 在android studio中启用按钮之前,如何从一组复选框中获取答案
//下面是我的代码。我希望能够让用户在进入“测试3”之前勾选其中一个复选框“左”、“中”、“右”。在勾选一个复选框之前,不应按下“下一步”按钮Java 在android studio中启用按钮之前,如何从一组复选框中获取答案,java,android,Java,Android,//下面是我的代码。我希望能够让用户在进入“测试3”之前勾选其中一个复选框“左”、“中”、“右”。在勾选一个复选框之前,不应按下“下一步”按钮 public class Test2 extends AppCompatActivity { private static Button button102; private CheckBox checkBox1, checkBox2, checkBox3; @Override protected void onCreate(Bundle saved
public class Test2 extends AppCompatActivity {
private static Button button102;
private CheckBox checkBox1, checkBox2, checkBox3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test2);
checkBox1 = (CheckBox) findViewById(R.id.checkBox1);
checkBox2 = (CheckBox) findViewById(R.id.checkBox2);
checkBox3 = (CheckBox) findViewById(R.id.checkBox3);
OnClickButtonListener102();
}
public void onCheckboxClicked(View view) {
switch(view.getId()) {
case R.id.checkBox1:
checkBox2.setChecked(false);
checkBox3.setChecked(false);
break;
case R.id.checkBox2:
checkBox3.setChecked(false);
checkBox1.setChecked(false);
break;
case R.id.checkBox3:
checkBox1.setChecked(false);
checkBox2.setChecked(false);
break;
}
}
//by clicking 'next' you reset the page
public void OnClickButtonListener102() {
button102 = (Button) findViewById(R.id.button1002);
button102.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.example.Test2");
startActivity(intent);
}
}
);
}
}
将按钮声明为已禁用
@Override
protected void onCreate(Bundle savedInstanceState) {
button102 = (Button) findViewById(R.id.button1002);
button102.setEnabled(false);
}
并在使用按钮单击单选按钮时启用该按钮。setEnabled(布尔值)
:
澄清:
- 默认情况下,您可以在
布局中禁用按钮XML
- 我不知道您如何为
单选按钮声明
,但我猜它只能由有效元素触发,这就是为什么我总是启用侦听器
,而不是在按钮
语句中case
- 如果要多次使用
或按钮
s,可以将其声明为类属性,并在单选按钮
或onCreate
步骤中获取对象onStart
button102 = (Button) findViewById(R.id.button1002);
button102.setEnabled(true);
switch(view.getId()) {
case R.id.checkBox1:
checkBox1.setChecked(true);
checkBox2.setChecked(false);
checkBox3.setChecked(false);
break;
case R.id.checkBox2:
checkBox3.setChecked(false);
checkBox2.setChecked(true);
checkBox1.setChecked(false);
break;
case R.id.checkBox3:
checkBox1.setChecked(false);
checkBox2.setChecked(false);
checkBox3.setChecked(true);
break;
}
但是,如果您只想选择一个复选框,您可以将逻辑设置为如中所示,但我强烈建议更改为此设计的每个单选按钮的复选框元素,将按钮声明为禁用
@Override
protected void onCreate(Bundle savedInstanceState) {
button102 = (Button) findViewById(R.id.button1002);
button102.setEnabled(false);
}
并在使用按钮单击单选按钮时启用该按钮。setEnabled(布尔值)
:
澄清:
- 默认情况下,您可以在
布局中禁用按钮XML
- 我不知道您如何为
单选按钮声明
,但我猜它只能由有效元素触发,这就是为什么我总是启用侦听器
,而不是在按钮
语句中case
- 如果要多次使用
或按钮
s,可以将其声明为类属性,并在单选按钮
或onCreate
步骤中获取对象onStart
button102 = (Button) findViewById(R.id.button1002);
button102.setEnabled(true);
switch(view.getId()) {
case R.id.checkBox1:
checkBox1.setChecked(true);
checkBox2.setChecked(false);
checkBox3.setChecked(false);
break;
case R.id.checkBox2:
checkBox3.setChecked(false);
checkBox2.setChecked(true);
checkBox1.setChecked(false);
break;
case R.id.checkBox3:
checkBox1.setChecked(false);
checkBox2.setChecked(false);
checkBox3.setChecked(true);
break;
}
但是,如果您只想选择一个复选框,您可以将逻辑设置为如中所示,但我强烈建议更改为此设计的每个单选按钮的复选框元素,非常感谢,您是个天才!只有一个问题,如果我勾选该框,然后取消勾选,它允许我转到下一个活动,因为按钮不再是禁用的…我如何解决这个问题?再次感谢是的,它现在工作得很好,非常感谢你的帮助。我猜你是西班牙人从你的名字…所以哈拉马德里:D格雷西亚斯阿米戈加泰罗尼亚和巴塞罗那杰杰。。。但无论如何,欢迎您,您也必须知道,如果此答案解决了您的问题,您可以通过单击复选标记将其标记为已接受,两者都将获得一定的声誉;)哈哈,我不知道你是巴塞罗那人p我打了个勾,谢谢你让我知道,因为我不知道你能做到,我只是新来这里帮忙的!有时候在这里开始有点难,呵呵。。。。顺致敬意,万分感谢,你是个和蔼可亲的人!只有一个问题,如果我勾选该框,然后取消勾选,它允许我转到下一个活动,因为按钮不再是禁用的…我如何解决这个问题?再次感谢是的,它现在工作得很好,非常感谢你的帮助。我猜你是西班牙人从你的名字…所以哈拉马德里:D格雷西亚斯阿米戈加泰罗尼亚和巴塞罗那杰杰。。。但无论如何,欢迎您,您也必须知道,如果此答案解决了您的问题,您可以通过单击复选标记将其标记为已接受,两者都将获得一定的声誉;)哈哈,我不知道你是巴塞罗那人p我打了个勾,谢谢你让我知道,因为我不知道你能做到,我只是新来这里帮忙的!有时候在这里开始有点难,呵呵。。。。顺致敬意,