我有一个带有三个选项卡的 TabHost。第一个选项卡的内容是自定义活动的意图,其内容视图是包含两个 EditText 和两个 CheckBox(和一个按钮)的相对布局。
每个复选框在选中时启用/禁用一个 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(),但都没有奏效。
我没有安卓设备,所以我只在模拟器中测试(最小 SDK 为 1.6)。