Android webView: можно по умолчанию сначала установить цифровую клавиатуру при использовании типа ввода = текст

У нас есть приложение, которое использует веб-просмотр для представления некоторых HTML-страниц. Эта HTML-страница имеет тип ввода, и мы использовали тип ввода = число, так как мы принимаем только десятичные числа в этом поле. Так появилась цифровая клавиатура андроида с десятичной точкой.

Проблема заключается в том, что устройства Samsung обновлены до Android 4.3. Теперь десятичная точка отсутствует на цифровой клавиатуре.

Поэтому нам нужно поставить общую клавиатуру, чтобы десятичная точка была. Проблема в том, что обычная клавиатура отображается с буквами, и мы хотим, чтобы клавиатура по умолчанию отображалась на цифровой части клавиатуры, чтобы сделать ее более удобной для пользователя. Нравится.

введите здесь описание изображения

Как мы можем этого добиться??

РЕДАКТИРОВАТЬ: Может быть, я плохо объяснил. Проблема заключается в HTML-странице, а не в Android TextView. Поэтому все ответы android: type бесполезны.


person isra60    schedule 22.01.2014    source источник
comment
можете ли вы увидеть, решает ли это вашу проблему? stackoverflow.com/questions/19208491/   -  person PedroAGSantos    schedule 22.01.2014
comment
@subspider Это решение, связанное с TextView, а не тип ввода HTML.   -  person isra60    schedule 23.01.2014


Ответы (2)


Создание подкласса WebView и переопределение метода onCreateInputConnection помогает получить десятичный разделитель на программной клавиатуре.

Другой вариант — изменить тип ввода HTML с «номер» на «тел», но это позволяет пользователю вводить дополнительные символы, такие как «*» и «#».

Похоже, это проблема Samsung 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;
}
person Erkki Nokso-Koivisto    schedule 25.03.2014

Вы можете установить клавиатуру как число InputType, переопределив в файле класса макет веб-просмотра, который вы используете: следуйте этому коду

override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection {
    val inputConnection = BaseInputConnection(this, false)
    outAttrs.imeOptions = EditorInfo.IME_ACTION_DONE
    outAttrs.inputType = EditorInfo.TYPE_CLASS_NUMBER
    return inputConnection
}

Это может помочь вам

person Eshan Chattaraj    schedule 11.06.2018