2014-01-22 9 views
7

일부 HTML 페이지를 표시하는 데 webview를 사용하는 앱이 있습니다. 이 HTML 페이지에는 입력 유형이 있으며이 필드에는 십진수 만 허용되므로 input-type = number를 사용했습니다. 그래서 숫자로 된 안드로이드 키패드가 소수점과 함께 나타납니다.Android webView : 입력 유형 = 텍스트를 사용할 때 기본적으로 숫자 키보드를 설정할 수 있습니다.

문제는 삼성 기기가 Android 4.3으로 업데이트되었습니다. 이제 숫자 키보드에서 소수점이 누락되었습니다.

그래서 우리는 소수점을 위해 일반적인 키보드를 넣을 필요가있다. 문제는 일반 키패드가 문자로 나타나고 기본적으로 키패드가 키보드의 숫자 부분에 나타나 더 사용자 친화적으로 만들기를 원합니다. 이렇게

enter image description here

우리가 이것을 어떻게 달성 할 수 있습니까 ??

편집 : 아마도 내가 잘 설명하지 못했을 것입니다. 문제는 안드로이드 TextView가 아닌 ​​HTML 페이지에 있습니다 그래서 모든 android : type 대답은 유용하지 않습니다.

+0

당신이 볼 수있는 HTTP : //stackoverflow.com/questions/19208491/edittext-with-inputfilter-assigned-decimal-separator-hidden-in-landscape-mode – PedroAGSantos

+0

@subspider 그것은 HTML 입력 유형이 아닌 TextView 관련 솔루션입니다. – isra60

답변

5

WebView를 서브 클래스 화하고 onCreateInputConnection 메서드를 재정의하면 소수점 구분 기호가 소프트 키보드로 전달되는 트릭입니다.

또 다른 옵션은 HTML 입력 유형을 "number"에서 "tel"로 변경하는 것이지만 사용자가 "*"및 "#"과 같은 추가 문자를 입력 할 수 있습니다.

이것은 삼성 4.3 특정 문제 인 것 같습니다. 이 일이 당신의 문제를 해결하는 경우

@Override 
public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 

    InputConnection connection = super.onCreateInputConnection(outAttrs); 

    if ((outAttrs.inputType & InputType.TYPE_CLASS_NUMBER) == InputType.TYPE_CLASS_NUMBER) 
    { 
     outAttrs.inputType |= InputType.TYPE_NUMBER_FLAG_DECIMAL; 
    } 

    return connection; 
}