text inputType的大多数实现( URI、密码等除外)对于EditText和TextView,允许使用表情符号--尽管在大多数谷歌键盘配置中,这个按钮是隐藏的。有没有办法禁止在EditText中输入表情符号?是否有一个可以与textMultiLine配对的inputType参数可以禁用Emoji?
发布于 2015-12-03 13:55:59
修改build.gradle文件,将XEditText添加到您的项目:
dependencies{
compile 'com.xw.repo:xedittext:2.0.0@aar'
}之后,在您的layout.xml中
<com.xw.repo.XEditText
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:x_disableEmoji="true"/>或者:
如下所示自定义EditText:
public class CustomEditText extends EditText {
public CustomEditText(Context context) {
super(context);
init();
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
setFilters(new InputFilter[]{new EmojiExcludeFilter()});
}
private class EmojiExcludeFilter implements InputFilter {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
int type = Character.getType(source.charAt(i));
if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {
return "";
}
}
return null;
}
}
}两者都会工作得很好!
https://stackoverflow.com/questions/22990870
复制相似问题