我想在编辑文本框中输入数据时限制一些特殊字符和表情符号。
我想在输入特殊字符或表情符号时立即将编辑文本框设置为错误。我只能为特殊字符执行此操作,但不能用于表情符号。
我曾尝试通过自定义键盘执行此操作,每次打开应用程序时都应设置自定义键盘。我甚至试过使用输入过滤器并在过滤器中包含了一组表情符号(即“:-)”,“: - (”等),但这不起作用。
以下是我的代码:
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;
}
}
请帮我解决问题。