在编辑文本框中输入数据时限制表情符号和某些特殊字符

时间:2015-03-11 13:20:35

标签: android android-edittext special-characters emoji restriction

我想在编辑文本框中输入数据时限制一些特殊字符和表情符号。

我想在输入特殊字符或表情符号时立即将编辑文本框设置为错误。我只能为特殊字符执行此操作,但不能用于表情符号。

我曾尝试通过自定义键盘执行此操作,每次打开应用程序时都应设置自定义键盘。我甚至试过使用输入过滤器并在过滤器中包含了一组表情符号(即“:-)”,“: - (”等),但这不起作用。

以下是我的代码:

public class ValidateRemarks implements InputFilter {
    EditText editText;
    String spcl;
    public ValidateRemarks(EditText editText) {
        // TODO Auto-generated constructor stub
        this.editText = editText;
    }
    @Override
    public CharSequence filter(CharSequence source, int start, int end,
            Spanned dest, int dstart, int dend) {

        for (int i = start; i < end; i++) {

           boolean valid=checkcharacters(source,i);
            if (!valid) {
                editText.setError("Cannot use this character");
                return "";
            }
            editText.setError(null);
        }
        return null;
    }

    boolean checkcharacters(CharSequence s, int j){
        boolean flag=false;

    final String[] emojis = new String[] { ":-)",":-(",";-)", ":-P",
         "=-O", ":-*", ":O","B-)", ":-$",":-!", ":-[" , "O:-)",":-\\" ,
          ":'(",":-X",":-D","o_O"};
         if(emojis.toString().contains(String.valueOf(s.charAt(j))))
        {

            flag=false;
        }
        else
        {
           flag=true;
        }
        return flag;
    }
}

请帮我解决问题。

0 个答案:

没有答案