该应用程序有一个问题列表,用户必须在其中说出语音然后输入,然后回答。当用户触摸EditText
并通过单击“讲话”按钮开始讲话时,它将完美地转换为文本。问题是,当用户想要再次使用相同 EditText
讲话以完成答案,删除了先前的结果并显示了新的结果时。
这是当前代码
@Override
public void onResults(Bundle bundle) {
//getting all the matches
ArrayList<String> matches;
matches = bundle.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
for (int j = 0; j < speEdtId.length; j++) {
eEdit = findViewById(speEdtId[j]);
//displaying the first match
if (matches != null)
if (eEdit.hasFocus())
eEdit.setText(matches.get(0));
}
}
@Override
public void onPartialResults(Bundle bundle) {
}
@Override
public void onEvent(int i, Bundle bundle) {
}
});
ImageButton speak = findViewById(R.id.speak);
speak.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_UP:
speechRecognizer.stopListening();
break;
case MotionEvent.ACTION_DOWN:
speechRecognizer.startListening(speechRecognizerIntent);
break;
}
return false;
}
});
}
是否有任何方法可以防止删除EditText
的先前结果,或者是否有办法将旧结果与新结果结合在一起。我想以任何方式将结果保留在EditText