Android:EditText在重新启用后无法获得焦点

时间:2010-06-25 12:20:20

标签: android focus android-widget android-edittext

我有一个带有三个标签的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)。

1 个答案:

答案 0 :(得分:38)

解决方法:

使用setFocusableInTouchModesetFocusable两个。