etSerch.setOnEditorActionListener(new TextView.OnEditorActionListener() {//输入完后按键盘上的搜索键【回车键改为了搜索键】 @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) {//修改回车键功能 // 隐藏键盘 ((InputMethodManager) etSerch.getContext().getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(NearbyActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); log("textview--" + v.getText().toString().trim()); page = 1; keyword = etSerch.getText().toString().trim(); initDatas(); return true; } return false; } });
注意是 OnEditorActionListener,不是OnKeyListener。用onkeylistener就会两次加载
在androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode="adjustPan"可以防止软键盘会把原来的界面挤上去的问题
有时候为了布局美观,在搜索时没有搜索按钮,而是调用软件盘上的按钮。调用的实现只需要在XML在输入框中加入android:imeOptions="actionSearch"。或者 EditText editText = new EditText(this);
editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
editText.setInputType(EditorInfo.TYPE_CLASS_TEXT);