Android webView:使用input type = text时,默认情况下可以先设置数字键盘

我们有一个使用webview呈现一些 HTML页面的应用程序.
这个HTML页面有输入类型,我们使用input-type = number,因为我们只接受此字段中带小数的数字.
所以数字 android键盘出现小数点.

问题是三星设备更新到Android 4.3.现在数字键盘上缺少小数点.

因此我们需要使用通用键盘来获得小数点.问题是公共键盘出现了字母,我们认希望键盘出现在键盘的数字部分,以使用户更友好.像这样.

我们怎样才能做到这一点?

编辑:也许我没有解释清楚.问题出在不在Android TextView中的HTML页面
所以android:type答案都没用.

解决方法

对WebView进行子类化并重写onCreateInputConnection方法可以将小数分隔符转换为软键盘.

另一种选择是将HTML输入类型从“数字”更改为“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;
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...