EditText不能输入空格且回车搜索

时间:2021-10-12 17:29:37

xml文件:

<EditText
android:id="@+id/et_key"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/shape_edittext_radius"
android:gravity="center_vertical"
android:hint="请输入关键字"
android:padding="5dp"
android:textSize="12sp"
android:singleLine="true"
android:imeOptions="actionSearch"/>

最主要的是要添加如下两个属性:

android:singleLine="true"
android:imeOptions="actionSearch"

代码:

et_key = (EditText) findViewById(R.id.et_key);
// 不能输入空格
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
//返回null表示接收输入的字符,返回空字符串表示不接受输入的字符
if (TextUtils.equals(source, " ")) {
return "";
}

if (TextUtils.equals(source, " ")) {
return "";
}
return null;
}
};
et_key.setFilters(new InputFilter[]{filter});
// 点击回车则搜索(onSearchClicked方法有隐藏键盘)
et_key.setOnKeyListener(new View.OnKeyListener() {

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_ENTER) {
// 搜索
onSearchClicked();
}
return false;
}
});

隐藏键盘:

// 收起软键盘并搜索
inputMethodManager.hideSoftInputFromWindow(et_key.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); //强制隐藏键盘
keyWords = et_key.getText().toString().replaceAll(" ", "");
if (TextUtils.isEmpty(keyWords)) {
ToastTools.toastShort(this, "关键字不能为空");
return;
}