android项目中要实现这样一个需求,在搜索框中输入关键词,在手机弹出的软键盘中,回车键变为搜索键,点击搜索键执行搜索。

1、修改EditText属性:

             

android:imeOption="actionSearch"的作用是将回车两字改为搜索,

android:singleLine="true"的作用是防止搜索框换行。

2、OnKeyListener事件:

        et_search=(EditText)findViewById(R.id.et_search);        et_search.setOnKeyListener(new View.OnKeyListener() {            @Override            public boolean onKey(View v, int keyCode, KeyEvent event) {                //是否是回车键                if (keyCode == KeyEvent.KEYCODE_ENTER) {                    //隐藏键盘                    ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))                            .hideSoftInputFromWindow(SearchActivity.this.getCurrentFocus()                                    .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);                    //搜索                    search();                }                return false;            }        });

做到这一步,前面提到的项目需求基本满足了。


3、点击时执行两次监听事件的问题:

执行上述代码我发现每次点击搜索都会执行两次搜索方法,后来发现时忘了没有加event.getAction() == KeyEvent.ACTION_DOWN这句判断。

修改代码如下:

        et_search=(EditText)findViewById(R.id.et_search);        et_search.setOnKeyListener(new View.OnKeyListener() {            @Override            public boolean onKey(View v, int keyCode, KeyEvent event) {                //是否是回车键                if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {                    //隐藏键盘                    ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))                            .hideSoftInputFromWindow(SearchActivity.this.getCurrentFocus()                                    .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);                    //搜索                    search();                }                return false;            }        });


更多相关文章

  1. Android(安卓)Wear手表蓝牙连接Android(安卓)Studio调试/开发的
  2. Android(安卓)AsyncTask实现异步任务的执行
  3. Android待机的suspend_sys_sync_queue分析
  4. Android中AsyncTask的简单用法 .
  5. Android(安卓)Handler机制 - handleMessage究竟在哪个线程执行
  6. Android之Android软键盘的隐藏显示研究
  7. Android面试系列文章2018之Android部分AsyncTask机制篇
  8. Android(安卓)之 AsyncTask 异步任务
  9. Android软键盘的隐藏显示研究

随机推荐

  1. android2.0+通讯簿查询详解
  2. android中获得屏幕、视图、任务栏、状态
  3. Ubuntu通过MTP访问Android设备
  4. APK安装路径移动至外部存储设备
  5. android -------- 流式布局,支持单选、多
  6. Android中如何将dp,dip,sp与px相互转化
  7. Android之对TabActivity的见解,个人觉得不
  8. trinea博客地址
  9. 第32章、日期对话框DatePickerDialog(从零
  10. android 退出activity 转吖转