返回列表 发帖

[Android机制] Android 弹出软键盘问题(最终解决方法)

上次解决了使用一个按钮弹出软键盘的方法,但是还是没有达到最终效果,界面加载完成自动弹出软键盘,昨天琢磨了半天,最终想到了解决办法。之所以再开一个新帖,是想让有需要的朋友,可以看到这个解决办法。
解决思路:就是设置一个定时器,让其在页面加载成功后,过一会再运行软键盘弹出事件。其它弹出软键盘代码和我之前做的button弹出软键盘代码一样,我上次只是简单的把代码放在onCreate的最后面,但是界面呈现的时候并没有弹出软键盘。昨天又想这个问题的时候,想到了会不会是界面绘制需要一些时间,如果把弹出软键盘的代码用线程单独跑,会不会就会成功呢?带着这个疑问,我就写了如下的代码,果然最后的效果和我的想法一致,成功出现了软键盘。
代码如下:
  1. Timer timer = new Timer();
  2.         timer.schedule(new TimerTask(){

  3.                         @Override
  4.                         public void run() {
  5.                                 InputMethodManager m = (InputMethodManager)
  6.                         edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
  7.                                 m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
  8.                                 Toast.makeText(Key.this, "show", Toast.LENGTH_SHORT).show();
  9.                         }
  10.                
  11.         }, 1000);
复制代码

以上是我的猜测想法,希望了解android界面绘制机制的朋友出来说几句
1

评分人数

十分感谢mgssnake,我们在上周时也找到了问题,但是因为一直没有时间喘息,没有来得及继续走论坛

我们实现的方式是让创建一个线程,再让线程sleep一会
这里有个小小的奇怪的地方,我们最初sleep了1秒,但是不行,后来sleep2秒,弹出键盘才成功,你的代码在这里是1秒,也测试通过了,
总结的地方,我和同事放在了自己的longene论坛:
http://www.longene.org/forum/viewtopic.php?f=5&t=3899

PS:不明白为什么mgssnake兄一个问题喜欢另开帖子?

TOP

也遇到过类似的问题,关注了~

十分感谢mgssnake,我们在上周时也找到了问题,但是因为一直没有时间喘息,没有来得及继续走论坛

我们实现的方式是让创建一个线程,再让线程sleep一会
这里有个小小的奇怪的地方,我们最初sleep了1秒,但是不行,后 ...
absfreedom 发表于 2009-10-28 09:31

TOP

很好用 非常感谢

TOP

来过了
行到水穷处,坐看云起时。

TOP

来过了
行到水穷处,坐看云起时。

TOP

返回列表

强烈推荐 关闭


到货啦,货到啦!!《Its Android Time—创赢路线》

到货啦,货到啦! 早上接到出版社通知,说《Its Android Time》在china-pub上到货了! 加上推荐序和前言等部分,差不多600页的样子,拿在手里够厚重的; 购买地 ...


查看