软键盘弹出问题

前两天看到论坛absfreedom 提了一个弹出软键盘的问题(http://www.eoeandroid.com/viewthread.php?tid=5261page=1#pid60541),但是一直都无人解答,我对android也是一个新手,希望有高人可以指点一两,让我们也能学习一下,但是到现在为止都没朋友可以解答,所以就自己研究了一番,终于研究了一个解决办法,特给各位分析下成果,希望有需要的朋友,下次不会再出现无解的情况了 ,上代码

1.


2. edit = (EditText)findViewById(R.id.EditText01);
3. edit.setVisibility(EditText.GONE);
4.

5. ....
6. btn = (Button)findViewById(R.id.Button01);
7. btn.setOnClickListener(new OnClickListener(){
8. public void onClick(View v) {
9. InputMethodManager m = (InputMethodManager)edit.getContext()
10. .getSystemService(Context.INPUT_METHOD_SERVICE);
11. m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//调用输入法弹出、收缩方法,设置的两个值为显示时的flag和隐藏时的flag
12. }

 

 

 

解决了使用一个按钮弹出软键盘的方法,但是还是没有达到最终效果界面加载完成自动弹出软键盘,昨天琢磨了半天,最终想到了解决办法。之所以再开一个新帖,是想让有需要的朋友,可以看到这个解决办法。
解决思路:就是设置一个定时器,让其在页面加载成功后,过一会再运行软键盘弹出事件。其它弹出软键盘代码和我之前做的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界面绘制机制的朋友出来说几句

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UnityNullReferenceException: Object reference not set to an instance of an object 是一个常见错误。这个错误通常是由于代码引用了空对象或者未初始化的对象而导致的。其一种可能的情况是,如果一个物体的父物体没有激活,那么其所有子物体是找不到的。同样地,在运行时使用GameObject.Find()函数全局查找GameObject时,也需要注意父物体激活的情况。 当出现这个错误时,我们需要仔细检查代码的每一个可能为空的值。常见的问题包括:代码引用了Unity不存在的物体或者挂载错了组件;在代码声明了变量但是没有赋值;在代码规定了物体的作用,但是忘记在Unity进行相应的绑定;代码的命名与Unity的命名不一致等等。 另外,有时候使用字典时也可能出现报空的情况。需要注意检查字典是否为空或者是否正确定义了键值对。 在出现报空错误后,我们应该仔细检查代码的空值和Unity的设置是否有问题。可以根据错误提示的代码名称与行数来定位问题所在。需要相信计算机不会骗人,只要耐心细致地找问题,就能解决报空错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Unity】出现NullReferenceException:Object reference not set to an instance of an object.的原因总结](https://blog.csdn.net/qq_41084756/article/details/126648829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Unity报错NullReferenceException: Object reference not set to an instance of an object](https://blog.csdn.net/the_sun___/article/details/113245952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值