Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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
Java 在android studio中启用按钮之前,如何从一组复选框中获取答案_Java_Android - Fatal编程技术网

Java 在android studio中启用按钮之前,如何从一组复选框中获取答案

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

//下面是我的代码。我希望能够让用户在进入“测试3”之前勾选其中一个复选框“左”、“中”、“右”。在勾选一个复选框之前,不应按下“下一步”按钮

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我打了个勾,谢谢你让我知道,因为我不知道你能做到,我只是新来这里帮忙的!有时候在这里开始有点难,呵呵。。。。顺致敬意,