欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android之EditText控制禁止输入空格和回车

程序员文章站 2023-01-21 10:15:35
1.edittext输入框控制不能输入空格,给edittext添加一个addtextchangedlistener监听,如果有空格split截取截取再for循环将截取后不包...

1.edittext输入框控制不能输入空格,给edittext添加一个addtextchangedlistener监听,如果有空格split截取截取再for循环将截取后不包含空格的字符串数组重新排列这样这个字符串就不包含空格了,最后将这个字符串重新写入edittext,这时会出现一个问题就是光标会自动跳转到第一个位置,在ontextchanged中会有一个叫做start的变量他会传入在这个空格输入之前的光标位置,edittext.setselection(int)来改变光标的位置具体位置。

具体代码:

private edittext edittextcll;// 输入框
edittextcll = (edittext) findviewbyid(r.id.edittextcll);
//监听输入框禁止输入空格
edittextcll.addtextchangedlistener(new textwatcher() {
 @override
 public 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];
   }
   edittextcll.settext(str1);
   edittextcll.setselection(start);
  }
 }
 @override
 public void beforetextchanged(charsequence s, int start, int count,
         int after) {
 }
 @override
 public void aftertextchanged(editable s) {
 }
});

2.edittext控制不能输入回车,在xml中添加android:singleline="true"

<edittext
 android:id="@+id/edittextcll"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:layout_marginleft="5dp"
 android:layout_marginright="5dp"
 android:background="@null"
 android:gravity="top"
 android:hint="输入更多补充意见"
 android:singleline="true"
 android:textcolor="#262626"
 android:textsize="16dp" />

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!