2013-04-17 2 views
1

"X123"의 형식으로 텍스트를 입력하고 싶습니다. 즉 첫 글자는 영문자이며 나머지 글자는 숫자이어야합니다. 그래서이 입력란을 fullfill하는 입력 유형이 있습니까 아니면 텍스트 워처을 편집 텍스트로 사용하고 런타임에 편집 텍스트의 입력 유형을 변경해야합니다. 가능한가요? 미리 감사드립니다. "X123"과 같은 EditText 입력 유형을 설정하는 방법은 무엇입니까?

+0

이 링크를 참조하십시오. http://developer.android.com/reference/android/text/InputType.html – krishna

답변

1

이와 같은 표준 입력 유형이 없습니다.

입력하는 동안 사용자에게 강제로 적용하려는 경우 TextWatcher를 사용할 수 있지만 실제로 좋지는 않습니다. '잘못된'입력을 누르면 효과가 나타나고 아무 일도 일어나지 않습니다.

아마도 예상되는 입력을 보여주는 힌트를 넣는 것이 훨씬 쉽고, 더 좋은 방법이며, 일단 입력을 '제출'하면 정규식과 비교하여 확인합니다. 정규 표현식과 일치하지 않는 경우 토스트를 표시하거나 입력 필드를 흔들거나 편집 줄을 빨간색 선으로 둘러싸거나 입력란이 잘못된 입력란을 표시하려고 할 수 있습니다.

+0

실제로이 유형의 문자열을 입력하여 키보드를 영문자에서 숫자 및 악의 자로 변경하려고하지 마십시오. -versa. – Umesh

+0

그래서 질문은 실제로 '입력하는 동안 키보드 유형을 변경할 수 있습니까?'와 같을 것입니다. 확실하지는 않지만 키보드 자체를 바꾸는 것보다 사용자에게 훨씬 더 놀랍고 우호적 인 것처럼 들립니다. 어쨌든, 당신은 쉽게 TextWatcher로 그것을 시험해보고 프로그래밍 방식으로 inputtype을 설정할 수 있습니다. –

+0

모든 사용자가 여기에서 가정하고있는 입력 방법을 사용하고있는 것은 아니므로 * 좋은 방법이 될 수는 없습니다. "숫자"변이가 전혀없는 키보드도 있습니다. 사용자는 음성 입력은 물론 하드웨어 또는 기타 불변의 키보드를 사용할 수도 있습니다. 이것이 중요한 경우, 입력 유형이 다른 두 개의 텍스트 필드를 만들고 사용자가 한 글자를 입력하자마자 초점을 다른 곳으로 전환하십시오. 이는 여기에 올릴 수있는만큼 가깝습니다. –

0

사용이 정규식은

string.matches("[a-zA-Z]\\d{3,}") // for compulasory one char and min three digit 
string.matches("[a-zA-Z]\\d{2,}") // for compulasory one char and min two digit 
string.matches("[a-zA-Z]\\d{1,}") // for compulasory one char and min one digit 
string.matches("[a-zA-Z]\\d*") // for compulasory one char and zero or more digit 

그것은 당신을 도울 것입니다 희망 문자열을 일치합니다.

+0

사실 나는 문자열을 비교하고 싶지 않습니다. 이 유형의 키보드가 영문에서 숫자 및 역으로 키보드를 변경하지 않고 첫 번째 대문자와 나머지 숫자를 입력하기를 원합니다. 가능합니까? – Umesh

관련 문제