2013-04-23 4 views
1

Android 전문가가 입력 필터를 사용하여 문자 -을 무시할 수 있습니까? 나는 사용자가 제외하고는 아무 것도 입력 할 싶습니다android가 특수 문자 입력을 무시합니다.

나는이 작업을 수행하는 클래스를 설정하지만, 모든 문자는 당신의 도움이 코멘트 ..... StoneBird에

public class InputFilterReservedCharacters implements InputFilter { 

    @Override 
    public CharSequence filter(CharSequence source, int start, int end, 
     Spanned dest, int dstart, int dend) { 
     try { 
     if (end > start) { 
      for (int index = start; index < end; index++) { 
       if (source.charAt(index) == "-".toCharArray()[0]) { 
        return ""; 
       } 
      } 
     } 
     } catch (NumberFormatException nfe) { 
     } 
     return ""; 
    } 
} 

감사를 무시하는 ' - '. 함수가 - 다음 함수가 결과로 ""를 반환합니다 발견하면 if (source.charAt(index) == "-".toCharArray()[0]) {return "";} 의미

@Override 
public CharSequence filter(CharSequence source, int start, int end, 
     Spanned dest, int dstart, int dend) { 

    String returnValue = ""; 

    try { 
     if (end > start) { 
      for (int index = start; index < end; index++) { 
       if (source.charAt(index) != '-'){ 
        returnValue = Character.toString(source.charAt(index)); 
       } 
      } 
     } 
    } catch (NumberFormatException nfe) { 
    } 
    return returnValue; 
} 
+0

ignore로하면 문자열에서 '-'을 제거하겠습니까? – wtsang02

답변

0

귀하의 코드 및 함으로써이 기능의 실행을 종료 : 나는 그것을 작업이 방법이있어. 그 이유는 필터가 작동하고 반환하려는 작업을 수행 할 때마다 항상 빈 결과를 얻는 것입니다. 함수에서 빈 문자열을 만들고, "유용한"문자를 모두 연결하여 반환하십시오.

public class InputFilterReservedCharacters implements InputFilter { 

@Override 
public CharSequence filter(CharSequence source, int start, int end, 
    Spanned dest, int dstart, int dend) { 
    private CharSequence result = ""; //change here 
    try { 
    if (end > start) { 
     for (int index = start; index < end; index++) { 
      if (source.charAt(index) != "-".toCharArray()[0]) { //change here 
       result+=source.charAt(index); 
      } 
     } 
    } 
    } catch (NumberFormatException nfe) { 
    } 
    return result; //and here 
} 
} 

또한 당신이 배열을 숯불로 변환 할 필요가 없습니다, 따옴표가 당신에게 문자를 제공하기보다는 '-'를 사용하여 생각합니다.