Как включить голосовой ввод на числовом EditText? - PullRequest
2 голосов
/ 24 ноября 2011

Я хотел бы использовать способность Android принимать голосовой ввод в элементе управления EditText, который настроен для числового ввода. Я хотел бы, чтобы цифровая клавиатура всплывала, когда элемент управления получает фокус. Я использовал следующий xml:

 <EditText
    android:id="@+id/edittext"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:numeric="decimal"
    />

Это приводит к тому, что цифровая и символьная клавиатура отображаются должным образом, но кнопка ввода голоса НЕТ. Если я переключаю клавиатуру на буквенно-цифровые клавиши, отображается кнопка голосового ввода, но она отключена.

Если я удаляю атрибут android: numeric = "decimal", появляется обычная клавиатура abc, и голос включается, и если я говорю число типа "один восемьдесят два целых шесть шесть", он работает и отображает 182.66 в поле редактирования текста.

Я искал верхний и нижний значения, чтобы включить голосовой ввод "только десятичный". У меня не было возможности найти какие-либо атрибуты в EditText или TextView, связанные с голосовым вводом.

Кто-нибудь может помочь? Я бы предпочел не использовать намерение распознавания голоса и должен делать все сам, если я могу избежать этого (хотя это будет интересный учебный проект!)

1 Ответ

1 голос
/ 24 ноября 2011

Я не думаю, что будет какой-то нестандартный способ заставить его работать так, как вы хотите.Я полагаю, что самый быстрый путь - это установить десятичную клавиатуру, а затем предоставить собственную кнопку для голосового ввода.Как только сервер вернет вам строку, которую он считает услышанной, просто подтвердите, что это число, и, если это так, вставьте ее в текст редактирования.

...