在 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”关注它。
我正在寻找控制此行为的哪个属性?
最佳答案
如果你想检测一个对象是否改变了他的状态,你需要在你的复选框上使用一个监听器。
对于您的情况,在您的复选框上使用 setOnCheckedChangeListener()。
你可以在这里看看:http://developer.android.com/reference/android/widget/CompoundButton.html 和 : Android: checkbox listener
关于安卓工作室 : Using CheckBox to set EditText enabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34731264/