android - 如何在数字 EditText 上启用语音输入?

标签 android android-edittext voice numeric speech-to-text

我想利用 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 键盘并启用语音,如果我说一个数字,如“一八十二点六六”,它会工作并在编辑文本框。

我四处寻找启用“仅十进制”语音输入的方法。我无法在 EditText 或 TextView 上找到与语音输入有关的任何属性。

有人可以帮忙吗?我宁愿不使用语音识别 Intent ,如果可以避免,我必须自己做所有事情(尽管这将是一个有趣的学习项目!)

最佳答案

我认为不会有任何开箱即用的方式让它按您想要的方式工作。我猜最快的路径是将小键盘设置为十进制,然后提供您自己的语音输入按钮。一旦服务器将它认为它听到的字符串返回给您,那么只需验证它是一个数字并将其放入编辑文本中(如果是)。

关于android - 如何在数字 EditText 上启用语音输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8249882/

相关文章:

javascript - 如何向 speechSynthesis 添加语音/语言?

java - 我正在尝试通过 Whatsapp 或任何其他通讯应用程序发送/共享 mp3 原始文件。

android - 是否可以以编程方式确定 Android 设备是否已 root?

android - 从 URL 在 Google Maps v2 Android 上设置标记图标

android - EditText 的句柄带有下划线

ios - 当用户通过语音输入时,应用程序崩溃 uitextview

android - Firebase recyclerAdapter 将对象复制到 arrayList

android - EditText 中的双光标用于输入类型数字/电话(RTL 阿拉伯语)

android - 为 EditText 实现 Text Watcher

iphone - 在 iPad mini 中使用语音听写时 100% iPhone 应用程序崩溃