android 软键盘 InputMethodManager

最近项目快完工了,对于各种的细节也逐渐的关注起来了,这不,这几天就在弄怎么控制输入法的弹出与隐藏。。

  其实这个问题说简单又不简单,就像一层纸,你能一下子捅破,你就出师了,看不破,就会弄得焦头烂额。
  下面是一个api的地址,当然是中文的,英文的自己看sdk吧。
    http://www.cnblogs.com/over140/archive/2011/03/04/1970517.html
       农民伯伯的博客里面还有很多其它的中文api,特别是英语不怎么好滴,记得收藏哦。
   

  对输入法的显示与隐藏
  网上有很多说通过xml来控制的,但是我觉得效果都不怎么理想,所以,我一般都不用,直接在代码里面写的.

       (第一次调用显示,再次调用则隐藏,如此反复),this指activity
  1. InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
  3. imm.showSoftInput(myview, InputMethodManager.SHOW_IMPLICIT);
复制代码
单独显示隐藏软键盘:
  显示:
  1. InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.showSoftInput(myview, 0);  
复制代码
隐藏:
  1. imm.hideSoftInputFromWindow(view.getWindowToken(), 0);  
复制代码
  程序启动后,自动弹出软键盘,可以通过设置一个时间函数来实现,不能再onCreate里写:
  1. Timer timer = new Timer();  
  2.   
  3. timer.schedule(new TimerTask() {   
  4. @Override public void run() {   
  5. InputMethodManager imm = (InputMethodManager)this.getSystemService(INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
  6.   
  7. Toast.makeText(chick.this, "show", Toast.LENGTH_SHORT).show();   
  8. }   
  9. }, 1000);  
复制代码
***************************************
默认焦点设置

  有时候也要对intent的默认焦点进行设置,不至于在intent跳转的时候默认焦点(光标)在EditText上,导致进入intent就打开输入法,影响界面美观。
  默认焦点的顺序是:从上倒下 从左到右第一个可以输入的控件作为焦点
可以使用:
  1. button.setFocusable(true);
  2. button.requestFocus();
  3. button.setFocusableInTouchMode(true);
复制代码
也可以:
  在EditText前面放置一个看不到的LinearLayout,让他率先获取焦点:
  1. <LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"/>
复制代码
补充:
开发中,必不可少的会使用到文本框(EditText)来进行数据录入,也就会需要对输入法进行一些控制。
先看下LAYOUT定义文件中的和输入法有关的属性:

   android:inputType
    指定输入法的类型,int类型,可以用|选择多个。取值可以参考:android.text.InputType类。取值包括:text, textUri, phone,number,等。
   android:imeOptions
    指定输入法窗口中的回车键的功能,可选值为normal, actionNext,actionDone,actionSearch等。部分输入法对此的支持可能不够好。

当然我总结的还不是很完善,我也就不一一的列出来了,如果你在开发过程中遇到了什么问题,跟帖吧,我们一起讨论
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值