Android: View换切后,无法正常设置焦点或切换后TextView的虚拟键盘不弹出
边学、边测试,花了三天时间完工一个小应用。
遇到很多问题,但最终还是解决了。
我的手机是Android2.2版,所以我也在是2.2版环境下学习,开发。
1. 在同一个Activity中的不同View(layout)中切换界面时,经常发生TextView无法正常取得焦点。
或者更严重的情况是,有了焦点,但点击后,虚拟键盘不弹出,根本就无法正常输入数据。
我昨天晚上为了解决这个焦点和虚拟键盘不弹出的问题,花了三个小时。
最终的解决方法:
当由view1 切换到 view2 时:
setContentView(view2);
View v = getCurrentFocus();
if(v!=null)
{
v.clearFocus(); //清空原来的焦点
}
tNumber.requestFocus(); //取的焦点
我在网上看到有人说,当你执行到 setContentView()后,界面并没有马上绘制出来,当界面还没有完成绘制完成,就马上执行到了requestFocus(),所以无法正常取得焦点。
最根本的原因是什么,我还真的说不清楚,我是Android菜鸟...
2011-11-24