2017-11-28 1 views
0

그래서 어떻게 사용자가 같은 문자를 입력 피할 수하십시오, 문제가있는edittext에서 like 같은 문자를 피하는 방법은 무엇입니까? 사용자가 텍스트이 텍스트는 때때로 형식의하지 수</p> <p>같은 일부 특수 문자와이 메이크업의 JSON 문자열을 포함 복사 입력 할 때

사용자는

+0

json 문제는 아마도 입력 된 문자와 관련이 없습니다. 해결하고자하는 경우 문제와 관련된 일부 코드를 표시하는 것이 좋습니다. –

+0

@ LoïcFaure-Lacroix JSON 문제는 내 편이 아니며, 서버 쪽에서 서버 API가 충돌하여 사용자가 이러한 문자를 입력하면이 문제에 대한 코드가 없으므로 [Arabic Alphabet , English Alphabet, Numbers] –

+1

** 인코딩 문제 **처럼 보입니다. –

답변

3

가 EDITTEXT에 InputFilters를 사용해보십시오 아랍어 텍스트와 영어 텍스트를 입력 할 수 있음을 고려하시기 바랍니다 :

InputFilter filter = new InputFilter() { 
     @Override 
     public CharSequence filter(CharSequence source, int start, int end, 
            Spanned dest, int dstart, int dend) { 
      StringBuilder stringBuilder = new StringBuilder(); 
      for (int i = start; i < end; i++) { 
       if (isEnglishOrArabicChar(source.charAt(i))) { 
        stringBuilder.append(source.charAt(i)); 
       } 
      } 
      return stringBuilder.toString(); 
     } 
    }; 
etName.setFilters(new InputFilter[]{filter}); 

private static boolean isEnglishOrArabicChar(char c) { 
    Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); 
    return ub == Character.UnicodeBlock.ARABIC || ub==Character.UnicodeBlock.BASIC_LATIN; 
} 

Reference

+0

귀하의 코드를 시도했지만 edittext는 어떤 문자도 허용하지 않습니다. –

+0

코드를 편집하면 if 조건이 반대입니다. 이제는 효과가있다! – dalla92

+0

지금 작동하지만 왜 텍스트를 edittext에 붙여 넣을 수 없습니까? –

관련 문제