InputFilter filter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
Pattern ps = Pattern.compile("^[ ㄱ-ㅣ가-힣a-zA-Z0-9]+$");
if (!ps.matcher(source).matches()) {
return "";
}
return null;
}};
InputFilter[] filters = new InputFilter[]{ filter };
와 같은 방법으로 input filter를 사용하여 입력을 제한걸고 있는데요. 쿼티에서 자판을 쓸때는 문제가 없지만
3x4 키에서 모음이 ㅛ, ㅕ, ㅗ, ㅓ 와 같이 점 찍고 ㅣ, ㅡ를 써야 써지는 글자가 나타나지 않습니다.
모음만 쓰면 점은 보이지 않다가 ㅡ, ㅣ를 쓰면 ㅗ,ㅓ,ㅛ,ㅕ 등이 보이지만 한 글자를 적기위해 자음뒤에 점을 찍으면 글씨가 안써집니다.
예를 들어 호를 적는다면 ㅎ을 쓰고 점을 찍으면 글씨가 사라지는 식입니다.
글자 입력 제한하여 한글을 적게 inputfilter를 적용하셨던 적 있으신 분들은 혹은 이에 대해 아시면 아낌없는 조언 부탁드립니다.
감사합니다.
Pattern ps = Pattern.compile("^[가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2025a-zA-Z]+$");
이렇게 해보세요 ^^
아 케이멀로망스님, 호이야님 두분 모두 감사드립니다ㅠ
이때 하던 일은 다른 방법으로 해결하게 되었지만 이런건 꼭 기억해두어야지요ㅋㅋ
두분 정말 감사드립니다!
PS. 명언이네요 "개발은 꼼수!" ㅋㅋ
천지인을 허용하지 않아 생기는 문제인데요. 아래와 같은 유니코드를 모두 추가해주시면 됩니다.
좀 더 자세한 설명은 여기에 작성해두었습니다.
http://hyogij.wordpress.com/2014/05/13/%ED%95%9C%EA%B8%80-%ED%95%84%ED%84%B0%EB%A7%81/
<string name="pattern_alphanumeric_hangul">^[a-zA-Z0-9가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]+$</string>
EditText와 버튼 하나를 만듭니다.
버튼을 누르면 EditText 에 입력된 내용을 Log찍습니다.
3X4 키보드를 이용해서 천지인쩜을 찍고 버튼을 누르고
Logcat에 찍힌 문자를 복사해서 패턴에 추가합니다.
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 개발은 꽁수!