2010-01-06 3 views
3

사용자 지정 입력 필드 (특히 소수점 구분 기호 (, 또는) 및 삭제 단추가 포함 된 9-0 및 추가 단추 2 개만 포함)를 표시하고 싶습니다.사용자 지정 입력 방법으로 입력 필드

사용자가 IME를 만들 수는 있지만 시스템 전반의 입력 방법으로 사용자가 설정해야 할 것입니다. 입력 방법을 구현하고 특정 입력 필드에 바인딩하는 방법이 있습니까?

도움 주셔서 감사합니다.

답변

1

응용 프로그램의 특정 필드에만 사용하는 사용자 지정 IME를 가질 수 없다는 것이 맞다고 생각합니다. 그것은 사용자에 의해 전 세계적으로 스위치 온되었을 것입니다.

하드웨어 키보드의 입력을 제한해야하는 사용자 정의 입력기와 함께 사용하려면 적절한 InputFilter을 사용해야합니다.

필드에 android:inputType을 설정 했으므로 InputFilter이 자동으로 추가되고 tell whatever IME is selected to display appropriate input buttons이됩니다. 기본 안드로이드 IME를 들어이 모든 숫자 페이지보다는 먼저 알파벳 페이지를 표시입니다 않습니다 alt text

+0

.xml 파일에서 android : inputType = "numberDecimal"옵션을 설정하여 동일한 결과를 얻었습니다. 문제는 두 줄의 글자와 한 줄의 작은 숫자 만 보게된다는 것입니다. 그러면 사용자 경험을 크게 망칠 수 있습니다. 그래서, 나는 정말로 사용자가 숫자, 구분 기호 및 일종의 삭제 버튼을 보길 원합니다. 80 년대의 모든 계산기에서와 똑같습니다. – LambergaR

+0

당신의 요점을 봅니다. 어떤 경우에는 GridLayout에 일부 Button을 추가하고 기본 온 스크린 키보드를 비활성화하지 않는 것이 좋습니다. 그것은 구식 계산기와 훨씬 더 비슷해 보입니다. –

+0

그건 본질적으로 내가 한 것입니다. (버튼으로 오버레이를 뿌리고 있습니다). 그러나 페이지에 하나 이상의 입력 상자가 있기 때문에 사용자가 해당 필드에 포커스를 설정하면 SiftInput의 다른 왕자를 보여주는 것이 좋을 것입니다. – LambergaR

0

무엇에 대한 귀하의 응용 프로그램이 onClick() 또는 onTouch()를 구현 곳에서 종류의 사용자 지정 "팝업"을 사용하여 사용자가 입력 필드를 클릭하여 값을 입력 할 때 @Dave Webb에서 제안한대로 입력 메소드가 재정의 된 새 간단한 활동을 볼 수 있도록 입력 상자의 Listener입니다. 이론에서는 너무 많은 코드 또는 오버 헤드가 없어야합니다.

+0

그게 내가 끝낸 것입니다 ... – LambergaR

+0

@LambergaR 나는 동일한 문제가 있었고 InputMethodService (기본적으로 사용자 정의 키보드)를 구현했지만 지금은 사용자가 EditText를 탭하면 어떻게 보이는지 보여줍니다 ... (어느 것이 든 의미하는) 당신은 그것을 알아낼 수 있었습니까? – AgentKnopf

+1

@AgentKnopf 당신은 edittext 유형을 반환하는 webview에서 hitresult()를 확인할 수 있습니다. – debonair