我有一个带有三个标签的TabHost.第一个选项卡的内容是自定义活动的意图,其内容视图是包含两个EditTexts和两个CheckBox(以及一个按钮)的相对布局.
检查后,每个checbox启用/禁用一个EditText和另一个复选框.我这样做了:
chkPolaziste.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if ( isChecked ) { entryPolaziste.setFocusable(false); entryPolaziste.setEnabled(false); chkOdrediste.setFocusable(false); chkOdrediste.setEnabled(false); } else { entryPolaziste.setEnabled(true); entryPolaziste.setFocusable(true); chkOdrediste.setEnabled(true); chkOdrediste.setFocusable(true); } } });
这很有效.当选中一个复选框时,它会禁用另一个复选框和他的EditText,当我取消选中它时,会启用EditText和另一个复选框.但是,在启用后,我无法在EditText中输入任何内容.当我点击它时,它只是轻弹一下,然后将焦点切换到另一个视图.它看起来好像控件没有完全启用.
我也尝试使用requestFocus()强制重新启用重新启用的EditText,并尝试使用setFocusableInTouchMode(),但两者都没有工作.
我没有Android设备,所以我只在模拟器中测试它(Min SDK是1.6).
解决方法:
使用setFocusableInTouchMode
和setFocusable
,两者都有.