软键盘的显示问题 imeOptions

原创 2015年11月18日 14:16:31

虽然通常输入法软键盘右下角会是回车按键

但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标

点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”

而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”

而决定这个图标的变换的参数就是EditText中的 android:imeOptions

android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等,这些意思都很明显


  1. <EditText  
  2.       android:id="@+id/editText"  
  3.       android:layout_width="200dp"  
  4.       android:layout_height="wrap_content"  
  5.       android:imeOptions="actionSearch"  
  6.    /> 
android studio 另一种方式
android:imeOptions="flagNoExtractUi|actionDone"
 

而其在Java代码中对应的值为EditorInfo.IME_ACTION_XXX 

在代码中通过editText.setOnEditorActionListener方法添加相应的监听,因为有些action是需要在代码中添加具体的相关操作的


  1. EditText editText = (EditText) contentView.findViewById(R.id.editText);  
  2.         editText.setOnEditorActionListener(new OnEditorActionListener() {  
  3.             @Override  
  4.             public boolean onEditorAction(TextView v, int actionId,  
  5.                     KeyEvent event) {  
  6.                 if (actionId == EditorInfo.IME_ACTION_SEARCH) {  
  7.                     Toast.makeText(getActivity(), "1111111",Toast.LENGTH_SHORT).show();  
  8.                 }  
  9.   
  10.                 return false;  
  11.             }  
  12.         });  

然而当我们设置这一切后,却发现点击输入框,输入法键盘完全没变化,还是回车键

这并不是上面的属性和方法无效,而是我们还需要设置别的属性来使它们生效

经过试验 设置下面两个属性中的一个即可使这个属性生效(应该还有其他的属性也可以,没去试验)

1 将singleLine设置为true

2 将inputType设置为text

  1. <EditText  
  2.       android:id="@+id/editText"  
  3.       android:layout_width="200dp"  
  4.       android:layout_height="wrap_content"  
  5.       android:imeOptions="actionSearch"  
  6.       android:singleLine="true"  
  7.       android:inputType="text"  
  8.    />  


java代码设置

  1. editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);  
  2. editText.setInputType(EditorInfo.TYPE_CLASS_TEXT);  
  3. editText.setSingleLine(true); 

相关文章推荐

Android 软键盘事件imeOptions响应

在android发开过程中,有时候需要对EditText的软键盘进行监听。 当点击软键盘回车位置按键的时候,需要实现 完成、前进、下一项、搜索、发送或其他功能,这就需要开发者对软键盘回车的点击事件进...

Android 软键盘事件imeOptions响应

FROM:http://blog.csdn.net/liuweiballack/article/details/46708697 在Android发开过程中,有时候需要对EditText的软...

edittext的imeOptions属性和android软键盘的使用

edittext的一些属性。用到一个edittext的时候,弹出来的软键盘是全屏的,除了软键盘,输入的容器占据了屏幕剩余的地方。很明显不是我们想要的。 其实只要设置 android:imeOption...

android 如何显示软键盘中的搜索以及处理点击搜索却进行了两次操作问题

android 如何显示软键盘中的搜索以及处理点击搜索却进行了两次操作问题最近在项目中遇到的一个需求是,需要调出android手机中的软件盘,并在软件盘上显示出“搜索”按钮,然后通过这个“搜索”按钮进...

android 软键盘的显示与隐藏问题的研究

转载 http://blog.csdn.net/a2758963/article/details/25163171 在android中,经常会和输入法的软件键盘交互。在Manifest文件里,系统给...

有关安卓listView里面多个EditText光标获取及软键盘显示切换消失问题

问题描述: 在公司做项目的时候,需要用到多个editText来设置值并进行保存操作,正常来说,我们进入该界面是不显示软键盘的,这些相信大家都知道怎么设置光标 相关问题了。然后进入界面,正常逻辑是我...

QQ登录界面解决软键盘问题

  • 2016年09月21日 13:51
  • 72KB
  • 下载

Android中软键盘弹出时关于布局的问题

当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入。 解决办法: 方法一:在你的activity中的oncr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软键盘的显示问题 imeOptions
举报原因:
原因补充:

(最多只允许输入30个字)