android SoftKeypad 软键盘的问题及自定义软键盘中Enter键和其相应事件

android SoftKeypad 软键盘的问题
1,Eidtext这个控件默认是你点击了它获得焦点之后就会自动地弹出软键盘,前提是你在竖屏的时候。但横盘的时候,不会自动弹出弹出软键盘了。
模拟器横屏时默认是打开了键盘的所以就算你用代码来显示软键盘也是显示不出来的,而像真实的手机(有物理键盘(硬件盘)比如G1)就不一样了。可以通过sensor来把画面横屏而并没正在的将键盘打开时就可以通过代码来显示软键盘了。

2,问题在通过代码来使得软键盘显示与隐藏时可以写在某控件的onClick事件里来或者用timer来控制,若你直接在onCreate或onResume里面是不行的,从网上找来的理由说是:软件盘是要在所有view画完才能显示的。第一种情况:

Java代码   收藏代码
  1. @Override  
  2.     protected void onResume() {  
  3.         // TODO Auto-generated method stub  
  4.         super.onResume();  
  5.         InputMethodManager im = ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE));  
  6.         im.showSoftInput(tv, 0);  
  7.     }  
  8. }  
  第二种情况:
Java代码   收藏代码
  1. tv.setOnClickListener(new OnClickListener() {  
  2.   
  3.             @Override  
  4.             public void onClick(View arg0) {  
  5.                 // TODO Auto-generated method stub  
  6.                 InputMethodManager im = ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE));  
  7.   
  8.                 if (im.showSoftInput(tv, InputMethodManager.SHOW_FORCED)) {  
  9.                     System.out.println(" return is true fullscreenmode"  
  10.                             + im.isFullscreenMode());  
  11.                 } else {  
  12.                     System.out.println(" return is not true");  
  13.                 }}});  


自定义软键盘中Enter键和其相应事件

SDK升级到1.5以后,当文本输入框(EditText及其子类)获得焦点后,会弹出系统自带的软键盘

为了实现一些自定义的功能,就稍微研究了下

* 当layout中有多个EditText,把每个控件的android:singleLine的属性都被设置成true的情况下,软键盘的Enter键上的文字会变成“Next”,按下后下个EditText会自动获得焦点(实现了“Next”的功能);当最后一个控件获得焦点的时候,Enter键上的文字会变成“Done”,按下后软键盘会自动隐藏起来

* 把EditText的Ime Options属性设置成不同的值,Enter键上可以显示不同的文字或图案
actionNone : 回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 一个放大镜
actionSend : Send
actionNext : Next
actionDone : Done,隐藏软键盘,即使不是最后一个文本输入框
(还有其他一些值可以设定,不过偷懒,没有看:-))

* 设置文本框的OnKeyListener,当keyCode = 66的时候,表明Enter键被按下,就可以编写自己希望的Action了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值