关于EditText禁止输入空格的方法

来源:互联网 发布:程序员编程语言 编辑:程序博客网 时间:2024/04/30 06:07

可以在EditText 上添加一个 addTextChangedListener监听

 然后用户在输入的时候就可以监听到他输入的字符串是否包含空格了 

如果发现空格的话我们将他用split截取这样所有空格就都会被截取掉

然后利用for循环将截取后不包含空格的字符串数组重新排列这样这个字符串就不包含空格了 

然后将这个字符串重新写入EditText

这时会出现一个问题就是光标会自动跳转到第一个位置

onTextChanged中会有一个叫做start的变量他会传入在这个空格输入之前的光标位置

利用EditText.setSelection(int)来改变光标的位置详细代码如下

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et = (EditText) findViewById(R.id.et);et.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {if (s.toString().contains(" ")) {String[] str = s.toString().split(" ");String str1 = "";for (int i = 0; i < str.length; i++) {str1 += str[i];}et.setText(str1);et.setSelection(start);}}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {}@Overridepublic void afterTextChanged(Editable s) {}});}

1 2
原创粉丝点击