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

dr.*_*jin 21 android focus android-widget android-edittext

我有一个带有三个标签的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);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

这很有效.当选中一个复选框时,它会禁用另一个复选框和他的EditText,当我取消选中它时,会启用EditText和另一个复选框.但是,在启用后,我无法在EditText中输入任何内容.当我点击它时,它只是轻弹一下,然后将焦点切换到另一个视图.它看起来好像控件没有完全启用.

我也尝试使用requestFocus()强制重新启用重新启用的EditText,并尝试使用setFocusableInTouchMode(),但两者都没有工作.

我没有Android设备,所以我只在模拟器中测试它(Min SDK是1.6).

小智 38

解决方法:

使用setFocusableInTouchModesetFocusable,两者都有.