android学习

Android-EditText禁止输入空格

2022-01-03  本文已影响0人  阿博聊编程
图片来源于网络
在日常的开发当中,我们难免要使用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()});
上一篇下一篇

猜你喜欢

热点阅读