Android:EditText 重新启用后无法获得焦点
Posted
技术标签:
【中文标题】Android:EditText 重新启用后无法获得焦点【英文标题】:Android: EditText cannot gain focus after being re-enabled 【发布时间】:2011-03-08 06:28:33 【问题描述】:我有一个带有三个选项卡的 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)。
【问题讨论】:
重要提示:此行为仅在触摸时出现(当我单击 EditText 时,但它与轨迹球一起正常工作(这就是我尝试 setFocusableInTouchMode 方法的原因)。 【参考方案1】:解决方法:
同时使用setFocusableInTouchMode
和setFocusable
。
【讨论】:
谢谢 - 这是一个巨大的帮助! (关于为什么这是必要的任何想法?) 哇,这让我免于马拉松式调试 也可以与 setFocusableInTouchMode(true) 配合使用,谢谢 但它可以用 .setTextIsSelectable(true) 语句选择吗?我发现文本是不可选择的(复制或剪切)。如何让它可选?以上是关于Android:EditText 重新启用后无法获得焦点的主要内容,如果未能解决你的问题,请参考以下文章
如何以科学计数法启用用户输入到android edittext
Android 中listview中嵌套edittext问题
如何启用 EditText 以输入特殊字符,如 ~!#$%^&*()_-[]?和其他 app:endIconMode="password_toggle" 在android中