EditText中imeOptions属性使用及设置无效解决

本文介绍如何在Android应用中通过设置EditText属性实现输入法软键盘右下角图标的变化,如搜索、前往等,并提供了XML配置及Java代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

点击浏览器网址栏的时候,输入法软键盘右下角会变成“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.    />  


而其在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);  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值