EditText把软键盘上的回车键改为搜索、发送或者 下一步,窗口随软键盘弹出而改变。

Android开发中,可以通过设置EditText的imeOptions属性来改变软键盘上的回车键功能,如actionSearch、actionSend、actionNext和actionDone。当imeOptions=actionSearch不起作用时,可能需要结合android:singleLine="true"。此外,为防止软键盘弹出挤压布局,可在AndroidManifest.xml中设置activity的android:windowSoftInputMode="adjustPan",或者手动隐藏软键盘。实现搜索功能,可以设置imeOptions="actionSearch"和android:singleLine="true",并监听OnEditorActionListener,而非OnKeyListener。

Android Edittext获取焦点后,弹出的软键盘显示搜索、发送、完成等功能

在EditText加一个属性

android:imeOptions="actionSearch"(搜索)

android:imeOptions="actionSend"(发送)   

android:imeOptions="actionNext"(下一项),

android:imeOptions="actionDone"(完成),

android:imeOptions="actionGo"(前往)等等;

有时候

android:imeOptions="actionSearch"(搜索)会不起作用,会显示换行

这是因为在2.3及以上版本不起作用,2.3以下就好使

这时加上android:singleLine="true"即可

如果设置了输入类型

如:android:inputType="number"

android:imeOptions="actionSearch"(搜索)也会不起作用,会显示换行

 

 

有时软键盘会把原来的布局挤上去

可以在androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode="adjustPan"

 

或者当返回时  先去隐藏软键盘

InputMethodManager inputmanger = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                inputmanger.hideSoftInputFromWindow(arg0.getWindowToken(), 0);

有时候为了布局美观,在搜索时没有搜索按钮,而是调用软件盘上的按钮。调用的实现只需要在XML在输入框中加入Android:imeOptions="actionSearch",另外,还要设置android:singleLine="true",保证点击不会换行,最后调用软键盘时,回车键就会显示搜索二字。

然后调用 OnEditorActionListener,不是OnKeyListener

?

在CODE上查看代码片
派生到我的代码片
  1. et_search.setOnEditorActionListener(new TextView.OnEditorActionListener() {  
  2.     @Override  
  3.     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {  
  4.         if (actionId == EditorInfo.IME_ACTION_SEARCH){  
  5.             isSearch = true;  
  6.             page = 1;  
  7.             MyUtils.hideSoftKeyboard(EnterShopActivity.this,v);  
  8.             getData();  
  9.             return true;  
  10.         }  
  11.         return false;  
  12.     }  
  13. });  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值