在Activity/Fragment中设置搜索键的监听事件
来源:互联网 发布:95后听的网络歌曲 编辑:程序博客网 时间:2024/05/04 09:52
猴子每天都要经历九九八十一难,种种bug迎风吹来。
首先设置TextView的两个属性:
(1)android:imeOptions="actionSearch"
(2)android:singleLine="true"(高版本会提示过时)或android:lines="1"
温馨提示少了第二个属性,软键盘永远不会将回车键修改为带“搜索”两字的按钮,就无法实现功能了
1、Activity中:
etSearch.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if(actionId == EditorInfo.IME_ACTION_SEARCH){ // 先隐藏键盘 ((InputMethodManager) etSearch.getContext().getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); Log.e("可以实现吗", "is ok ?"); return true; } return false; }});2、Fragment中,其实就是注意一下就可以了(this\context\getactivity...):
editSearch.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if(actionId == EditorInfo.IME_ACTION_SEARCH){ // 先隐藏键盘 ((InputMethodManager) editSearch.getContext().getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); //获取编辑框内容,执行相应操作 return true; } return false; }});
3、网上说会执行两次的原因及解决:
etSearch.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { /** * 看情况是否需要满足其一条件 * (keyCode == KeyEvent.KEYCODE_SEARCH) || (keyCode == KeyEvent.KEYCODE_ENTER) * * 如果少了event.getAction() == KeyEvent.ACTION_DOWN则会执行两次 * */ if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { //满足条件则隐藏软键盘 ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow( getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); // TODO: 2016/9/2 具体根据按搜索键后执行的操作 Log.e("will do twice ?", "I can't believe 1"); } return false; }});
对于网上说不是setOnKey...而是上面匿名方法(setOnEditorActionListener),暂时没时间去研究
0 0
- 在Activity/Fragment中设置搜索键的监听事件
- 按钮的监听事件在fragment中如何实现
- 关于在fragment中监听按钮的点击事件
- 如何在Fragment中监听触摸事件
- 如何在Fragment中监听触摸事件
- Fragment监听返回键(Fragment响应Activity的onKeyDown事件)Kotlin版
- Fragment中监听事件
- android中ListView中在Adapter中为Button设置监听事件方法--跳转Activity
- activity获取viewpager中fragment里的button按钮,并设置监听怎么实现
- Fragment中设置监听返回键的功能
- Android如何在Fragment中监听OnKeyDown、OnkeyUp事件
- Android 在Fragment中监听返回键的做法
- Android Fragment中监听事件
- Fragment中监听onKey事件
- Fragment中监听onKeyDown事件
- 在Fragment中监听返回键
- spannablestring用在fragment中,设置点击监听无效
- Android 在Activity中响应Fragment中的事件
- JAVA 继承基本类、抽象类、接口
- 普通类调用Spring bean对象
- 馒头做法
- BI的需求调研的方法分类
- ERP财务基础学习
- 在Activity/Fragment中设置搜索键的监听事件
- 红烧鳝鱼
- Sql server 删除重复记录的SQL语句
- Hive on Spark 配置、运行
- Exporting from SSRS&nb…
- ExecutionLog2 View -&n…
- 基础会计-结转
- Create SQL Agent …
- How to run an&nbs…