2012-04-17 4 views
1

내 앱에서 오류가 발생했습니다. 레이아웃에 여러 개의 EditText 필드가 있습니다. 나는 사용자가 부호가있는 10 진수 만 입력 할 수 있기를 원합니다. 그러나, 입력을 처리하고 올바른지 확인하는이 필드에 사용자 지정 TextWatcher를 연결했기 때문에 레이아웃을 number|numberSigned|numberDecimal으로 선언하지 않았습니다. 마이너스 키를 토글로 사용하기 때문에이 작업을 수행합니다.Android 가상 키보드 버튼이 부적절하게 사용 중지됨 (Kindle Fire)

자, 필드에 "300"이 있습니다. 사용자가 빼기를 누르면 내 사용자 정의 TextWatcher가이를 가로 채고 "300-"대신 "-300"으로 변환합니다. 다시 마이너스를 누르면 마이너스가 제거되어 "300"으로 변경됩니다.

이것은 거의 모든 사람에게 잘 작동하지만 Kindle Fire에서는 작동하지 않습니다. 가상 키보드의 소수점과 빼기 키는 사용할 수 없으므로 해당 키를 두드리고 사용자 정의 텍스트 감시자가 작업을 수행 할 수있는 옵션조차 없습니다.

필드를 number|numberSigned|numberDecimal으로 선언하면 커서가 가장 왼쪽 위치 (즉, 300에서 3) 이전에 있지 않으면 빼기가 허용되지 않습니다.

Kindle Fire에 소수점 및 빼기 키가 활성화되어 있어야하지만, 사용자 지정 TextWatcher에 도달하기 전에 사용자의 허용 된 입력이 제한되지 않도록하려면 어떻게해야합니까? way 모든 다른 안드로이드 장치가 나를 위해 일해오고 있습니까? :) @zapl에서

+0

EditText를 "number"로 제한하지 않고 숫자 키패드를 강제 실행하는 방법이있었습니다. Fire가 "300-"을 입력 할 수 있기 때문에 그것은 당신을 위해 일할 것입니다. 나는 단지 어떻게 기억하지 못합니까 : O) – zapl

+0

'theEditText.setRawInputType (Configuration.KEYBOARD_12KEY)'도움이 될 수 있습니다. 무능한'-'는 정말로 이상하게 들린다. – zapl

+0

나는 그것을 시도했다, 그것은 도움이되지 않았다. : –

답변

0

대답은 :

theEditText.setRawInputType(Configuration.KEYBOARD_12KEY) 

일했다! 그가이 답변에 대한 적절한 크레딧을 얻을 수 있도록 그의 다른 좋은 대답을 찾아서 upvote 그를 찾으십시오. ;)

관련 문제