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之Android软键盘的隐藏显示研究
  2. android软键盘的隐藏以及Edittext的焦点问题
  3. Android软键盘的隐藏显示研究
  4. android键盘的回车键修改和监听
  5. Edittext禁止输入回车键以及单行显示解决方案
  6. Android弹出键盘布局闪动原理和解决
  7. Android 显示系统键盘搜索按键,实现搜索功能

随机推荐

  1. Android 开发资料总结--响应式编程
  2. Android 高手进阶教程(十三)之----Androi
  3. 浅入浅出 Android 安全:第五章 Android 应
  4. android如何停止Thread和AsyncTask
  5. Android单元测试那些事儿(一)
  6. 对Android中AsyncTask的学习
  7. Android网络编程之WebKit应用
  8. android repo中manifest.xml的详解
  9. Android中切换屏幕方向时Activity生命周
  10. Android SDK 之 InputMethodService 详解