在日常的开发当中,我们难免要使用
EditText
控件,那么我们怎么处理让用户不在EditText
中输入空格呢?
输入监听控件
输入监听事件是我们最输入的方法之一,直接上代码。想要使用这种方法的小伙伴,可以直接复制修改控件ID就可以用。
mEtName?.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
// 禁止EditText输入空格
if (p0.toString().contains(" ")) {
var str = p0?.toString()?.split(" ")
var sb = StringBuffer()
for (i in 0 until str?.size!!){
sb?.append(str[i])
}
mEtName?.setText(sb.toString())
mEtName?.setSelection(p1)
}
}
})
InputFilter实现
除了上面的输入事件监听,还有这种方法:
/**
* 禁止输入空格
*/
public class SpaceFilter implements InputFilter {
@Override
public SpaceFilter filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
// 判断是否是空格
if (source.equals(" "))
return "";
return null;
}
}
使用方法:
mEtName.setFilters(new InputFilter[]{new SpaceFilter()});