我有一个edittext,我正在使用语音文本。我想在edittext中附加文本而不是覆盖。我怎样才能做到这一点。现在它捕获一个句子并以edittext显示。感谢
public void onClick(查看v){
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
try {
startActivityForResult(intent, RESULT_SPEECH);
et_text.setText("");
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(),"Opps! Your device doesn't support Speech to Text", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case RESULT_SPEECH: {
if (resultCode == RESULT_OK && null != data) {
ArrayList<String> text = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
et_text.setText(text.get(0));
}
break;
}
}
}
答案 0 :(得分:0)
我猜你第一次使用你的代码时,EditText
是空的,然后你的代码执行并在识别一些语音后设置一些文本,在第二次运行时你再次想要显示语音中的文本并希望将其附加到EditText
上设置的最后一个文本。在使用EditText
在setText()
上设置文字之前,先在{{1}上调用getText()
然后将其保存在某个EditText
变量中。然后连接第二次运行代码时生成的文本。
String
答案 1 :(得分:0)
您只需使用append
方法而不是setText
:
et_text.append(text.get(0));