因项目需求,需要禁止用户输入表情符号,个人认为方式有俩种。
第一种键盘弹出不显示表情选项(失败,因为每个手机的Rom烧制都是固定的,很难去操作,主要是水平有限);
第二种,显示表情选项,但是输入之后EditText不做处理,不会进行展示,这样我们传输的时候就不会出现错误;
查询一些网上的处理方案,有的朋友是通过一些正则去过滤,有的是通过自定义类去做处理,当然应该都是通过校验实现的,这里我在Github找到了一个自定义控件,内置表情处理,可以直接拿来用,但是要详情使用的话,最好熟悉一下对应的属性信息。
作者介绍:
带删除功能的EditText;显示或者隐藏密码;可设置自动添加分隔符分割电话号码、银行卡号等;支持禁止Emoji表情符号输入
原作者Github地址:
/woxingxiao/XEditText
以下是一些EditText限制属性
EditText限制输入信息(有数字,密码等,但不包含表情):
android:inputType=""
如:
android:inputType="none" android:inputType="text" android:inputType="textCapCharacters" android:inputType="textCapWords" android:inputType="textCapSentences" android:inputType="textAutoCorrect" android:inputType="textAutoComplete" android:inputType="textMultiLine" android:inputType="textImeMultiLine" android:inputType="textNoSuggestions" android:inputType="textUri" android:inputType="textEmailAddress" android:inputType="textEmailSubject" android:inputType="textShortMessage" android:inputType="textLongMessage" android:inputType="textPersonName" android:inputType="textPostalAddress" android:inputType="textPassword" android:inputType="textVisiblePassword" android:inputType="textWebEditText" android:inputType="textFilter" android:inputType="textPhonetic" android:inputType="number" android:inputType="numberSigned" android:inputType="numberDecimal" android:inputType="phone"android:inputType="datetime" android:inputType="date"android:inputType="time"
使用方式
build :
compile 'com.xw.repo:xedittext:1.0.6@aar'
Layout (父布局加入命名空间):
xmlns:app="/apk/res-auto"
EditText(所用代码):
<com.xw.repo.xedittext.XEditTextandroid:layout_width="match_parent"android:layout_height="161dp"android:background="@null"android:gravity="top"android:hint="请分享相关问题"android:paddingLeft="17dp"android:textColor="#999999"android:textSize="13sp"app:x_disableEmoji="true" />
禁止表情:
app:x_disableEmoji="true"
一键清除:
app:x_disableClear="true"
hint显示位置:
android:gravity="top"
取消Edit原有的下划线背景:
android:background="@null"