Android Studio:使用复选框将EditText设置为启用

Android Studio:使用复选框将EditText设置为启用,android,checkbox,android-edittext,Android,Checkbox,Android Edittext,在androidstudio中,我试图使用一个复选框来控制数字EditText是启用还是禁用。单击复选框时的相关代码: boolean checked = ((CheckBox) view).isChecked(); EditText yzEdit = (EditText) findViewById(R.id.yzEdit); // Check which checkbox was clicked switch(view.getId()) { c

在androidstudio中,我试图使用一个复选框来控制数字EditText是启用还是禁用。单击复选框时的相关代码:

    boolean checked = ((CheckBox) view).isChecked();
    EditText yzEdit = (EditText) findViewById(R.id.yzEdit);

    // Check which checkbox was clicked
    switch(view.getId()) {
        case R.id.yzCheck:
            if (checked){
                yzEdit.setBackgroundColor(Color.parseColor("#FFFFFF"));
                yzEdit.setTextIsSelectable(true);
                yzEdit.setFocusable(true);
                yzEdit.setFocusableInTouchMode(true);
                yzEdit.setCursorVisible(true);
                yzEdit.setEnabled(true);
            }
            else{
                yzEdit.setBackgroundColor(Color.parseColor("#CCCCCC"));
                yzEdit.setTextIsSelectable(false);
                yzEdit.setFocusable(false);
                yzEdit.setFocusableInTouchMode(false);
                yzEdit.setCursorVisible(false);
                yzEdit.setEnabled(false);
            }
            break;
    }
几乎一切都正常。但是,当我选中该框,启用yzEdit,然后单击yzEdit时,没有直接弹出用户数字键盘。因此,用户不能在新启用的EditText中输入任何数字(除非以舍入的方式,通过前一个EditText中的“下一个”来关注它)


我在寻找控制此行为的哪个属性?

如果要检测对象是否已更改其状态,则需要在复选框上使用侦听器

对于您的情况,在复选框上使用setOnCheckedChangeListener()

您可以在这里查看: 以及:

旁白:例如,通过执行
setEnabled(checked);
,您确实可以缩短此代码。您可以添加xml layput吗