举个例子,根据条件判断是否禁用editText:
if(a > 3)
{
editText.setFocusableInTouchMode(false);
//editText.setFocusable (false);
editText.clearFocus();
}
else
{
editText.setFocusableInTouchMode(true);
//editText.setFocusable (true);
editText.requestFocus();
}
一开始我使用的是setFocusable (),但测试发现,当执行了setFocusable (false)后,再执行 setFocusable (true) 无法输入,也获取不了焦点了。
郁闷了,后来试了一下setFocusableInTouchMode(false)后,再执行setFocusableInTouchMode(true),可以正常输入,也能正常获取焦点。
setFocusableInTouchMode 与 setFocusable 之间有什么区别,我不太清楚,但经过测试发现这个区别。