【问题标题】:Android Studio: Using CheckBox to set EditText enabledAndroid Studio:使用 CheckBox 设置 EditText 启用
【发布时间】:2016-01-12 06:53:30
【问题描述】:

在 android studio 中,我尝试使用 CheckBox 来控制数字 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 中的“Next”来关注它。

我在寻找哪个属性来控制这种行为?

【问题讨论】:

  • 旁白:例如,您可以通过 setEnabled(checked); 来缩短这段代码。
  • 你能添加xml布局吗

标签: android checkbox android-edittext


【解决方案1】:

如果你想检测一个对象是否改变了他的状态,你需要在你的复选框上使用一个监听器。

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

你可以看这里:http://developer.android.com/reference/android/widget/CompoundButton.html 和 : Android: checkbox listener

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2018-07-20
    相关资源
    最近更新 更多