我有一个带有三个标签的TabHost。第一个选项卡的内容是自定义活动的意图,其内容视图是包含两个EditTexts和两个CheckBoxes(以及一个按钮)的相对布局。
每个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)。
答案 0 :(得分:38)
解决方法:
使用setFocusableInTouchMode
和setFocusable
两个。