安卓中的文本追加覆盖



我正在使用append()方法在 androidtextview中附加文本,但它一次又一次地override。我正在努力进行实时语音识别,并且正在获得要设置为文本视图的实时结果。我这样做,

@Override
public void onPartialResults(Bundle partialResults) {
if (dsProperties.speechResultFound) return;
Boolean valid = (partialResults != null && partialResults.containsKey(SpeechRecognizer.RESULTS_RECOGNITION) &&
partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION) != null &&
partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION).size() > 0 &&
!partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION).get(0).trim().isEmpty());
if (valid) {
final String droidLiveSpeechResult = partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION).get(0);
if (droidSpeechListener == null) {
Log.i(TAG, "Droid speech live result = " + droidLiveSpeechResult);
} else {
// Setting the progress message
recognitionProgressMsg.setText(droidLiveSpeechResult);
//                                        setRecognitionProgressMsg(droidLiveSpeechResult);
// Sending an update with the droid speech live result
droidSpeechListener.onDroidSpeechLiveResult(droidLiveSpeechResult);
}
if ((System.currentTimeMillis() - dsProperties.pauseAndSpeakTime) > Extensions.MAX_PAUSE_TIME) {
dsProperties.speechResultFound = true;
droidSpeechPartialResult.postDelayed(new Runnable() {
@Override
public void run() {
// Closing droid speech operations
//                                        closeDroidSpeech();
if (dsProperties.showRecognitionProgressView && dsProperties.oneStepResultVerify) {
// Saving the speech result
dsProperties.oneStepVerifySpeechResult = droidLiveSpeechResult;
restartDroidSpeech.postDelayed(new Runnable() {
@Override
public void run() {
startDroidSpeechRecognition();
//                                                    abc=abc+" "+droidLiveSpeechResult;
//                                                    droidSpeechListener.onDroidSpeechFinalResult(dsProperties.oneStepVerifySpeechResult);
}
}, Extensions.MAX_PAUSE_TIME);
} else {
if (droidSpeechListener == null) {
Log.i(TAG, "Droid speech final result = " + droidLiveSpeechResult);
} else {
droidSpeechListener.onDroidSpeechLiveResult(droidLiveSpeechResult);
if (dsProperties.continuousSpeechRecognition) {
// Start droid speech recognition again
startDroidSpeechRecognition();
} else {
}
}
}
}
}, Extensions.PARTIAL_DELAY_TIME);
} else {
dsProperties.pauseAndSpeakTime = System.currentTimeMillis();
}
} else {
dsProperties.pauseAndSpeakTime = System.currentTimeMillis();
}
}
private void setRecognitionProgressMsg(String msg) {    
if (recognitionProgressMsg != null && msg != null) {    
recognitionProgressMsg.append(msg);    
}
}

以上给出了用于实时识别的完整代码,并在下面函数中将实时结果设置为文本视图。 任何人都可以纠正我吗?

String a = recognitionProgressMsg.getText().toString();
a+=msg;
recognitionProgressMsg.setText(a);

最新更新