2015년 4월 16일 목요일

Android : 천지인 자판의 Middle Dot 문제 - InputFilter

천지인 자판을 사용하는 단말기에서 한글만 입력 받고 싶을 경우 아래처럼  InputFilter 를 정의해줘도  Middle dot 문제로 제대로 글이 입력되지 않는다.

"^[ㄱ-ㅣ가-힣]*$"

천지인 키보드 경우  아래아 ‘·(middle dot)’ 를 이용하여 모음을 만들기 때문에, 이를 허용하여야 한다. 아래의 UniCode 들은 여러 제조사(삼성, LG, 팬택 등)의 단말기들에서 아래아 ‘·(middle dot)’ 표현하는 값이다.
UniCode 는 다음의 사이트 http://www.fileformat.info/info/unicode/char/b7/index.htm 에서 확인 할 수 있으며, InputFilter정의시에 이 유니코드를 허용해주면 한글이 제대로 표현된다.



* Sample Method >


//한글 . 영문 . 부분적 특수문자 허용 InputFilter

private InputFilter filterSearch = new InputFilter() {
   public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
   
   // 천지인 자판 : middle dot 문제 > \u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55

        Pattern ps = Pattern.compile("^[ㄱ-ㅣ가-힣a-zA-Z0-9_\\s\\.\\?\\!\\-\\,|\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]*$");
        if (!ps.matcher(source).matches()) { 
            return ""; 
        } 
        
        return null; 
    } 
 }; 



댓글 없음:

댓글 쓰기