
圖片來源于網(wǎng)絡(luò)
在日常的開發(fā)當(dāng)中,我們難免要使用
EditText控件,那么我們怎么處理讓用戶不在EditText中輸入空格呢?
輸入監(jiān)聽控件
輸入監(jiān)聽事件是我們最輸入的方法之一,直接上代碼。想要使用這種方法的小伙伴,可以直接復(fù)制修改控件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實現(xiàn)
除了上面的輸入事件監(jiān)聽,還有這種方法:
/**
* 禁止輸入空格
*/
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()});