AKTUALISIERT: Ich erstelle eine App, wo onClickListener
verwendet wird, um Sprache in Text zu konvertieren und den Text in ein List View
Feld einzugeben. Ebenfalls einmal trat ich in die Sprache wieder auslösen möchten Option und geben Sie den neuen Text in ein anderes List View
Feld in Text, während immer noch alle anderen List View
Felder beibehalten, die in bereits gefüllt waren.Wie kann onClick mehrmals in derselben Aktivität aufgerufen werden?
Der folgende Teil der Java-Datei Das ruft die Option Sprache zu Text mit den verschiedenen Anweisungen auf, die ich beantworten möchte. Ursprünglich erschienen die Eingabeaufforderungen genau nach dem nächsten, was perfekt ist, aber es hat nicht jeden Text dem entsprechenden Bearbeitungstextfeld zugewiesen. Es hat nur die Rede zum Text nur der letzten Aufforderung aufgezeichnet. Jetzt mit etwas Hilfe auf diesem Thread habe ich den Code die folgenden aktualisiert, wo checklv1
usw. entsprechen eindeutige Zahlen:
public void onClick(View v){
Intent i1 = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i1.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i1.putExtra(RecognizerIntent.EXTRA_PROMPT, "What is the current time?");
startActivityForResult(i1, check);
Intent i2 = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i2.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i2.putExtra(RecognizerIntent.EXTRA_PROMPT, "Is the status Confirmed or Unconfirmed?");
startActivityForResult(i2, checklv1);
Intent i3 = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i3.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i3.putExtra(RecognizerIntent.EXTRA_PROMPT, "What is the Temp?");
startActivityForResult(i3, checklv2);
}
Der folgende Teil des Codes zeigt den Text in das editText
Feld zuweisen lv1
, lv2
und lv3
:
der Code jetzt schreitet voran und die Spracheingabe Phrasen in jedem der list view
Felder in Text. Allerdings ist mein einziges Problem, dass lv3
enthält die richtige Wendung, lv1
enthält auch die richtige Wendung, aber lv2
ist eine gleiche Phrase wie lv1
, wenn es die entsprechende lv2
entsprechen sollte. Höchstwahrscheinlich stimmt mit der Prüfungsaufgabe etwas nicht.
Wenn jemand kann mir bitte helfen, wo ich in den obigen Code falsch gelaufen, die sich stark
startIntent -> onActivityResult -> startIntent -> onActivityResult -> startIntent -> onActivityResult. Vergessen Sie nicht, Ihren gespeicherten Status zu behandeln. –
Wissen Sie, wo im Code ich startIntent onActivityResult @Eugen Pechanec setzen sollte? –
Komm schon, du kannst es selbst herausfinden. Beginnen Sie nicht sofort mit der Spracherkennung, nur die letzte Anfrage wird berücksichtigt, genau wie Sie es verifiziert haben. Stattdessen starte das erste onClick. Wenn das Ergebnis erfolgreich zurückkehrt, starte den zweiten und so weiter. –