You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中使用SpeechRecognizer设置EditText文本时覆盖原有内容的问题

问题原因

你在onResults回调中直接调用了EditText的setText()方法,该方法会直接替换控件内已存在的全部内容,所以原有内容会被清空。

解决方案

只需修改onResults回调内的文本赋值逻辑,先获取控件原有内容,将新识别的文本拼接在原有内容之后再设置即可,修改后的代码如下:

@Override
public void onResults(Bundle results) {
    micButton.setImageResource(R.drawable.ic_baseline_mic_off_24);
    ArrayList<String> data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
    // 获取原有内容
    String existedText = editTextDescription.getText().toString();
    // 拼接新识别的内容,中间可按需加空格、换行符分隔
    String finalText = existedText + data.get(0);
    editTextDescription.setText(finalText);
    // 将光标定位到文本末尾
    editTextDescription.setSelection(finalText.length());
}

可选优化

如果需要实现语音识别过程中实时显示部分识别结果,可以在onPartialResults回调中添加相同的拼接逻辑,无需等待语音输入完全结束就能看到识别内容。

内容的提问来源于stack exchange,提问作者Harshitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:45:06