0

已更新: 我正在創建一個應用程序,其中onClickListener用於將語音轉換爲文本並將文本輸入到List View字段。同樣,一旦輸入,我想重新觸發語音選項,並將新文本輸入到另一個List View字段,同時仍保留已填寫的所有其他List View字段。如何在同一活動中多次調用onClick?

以下是Java文件的一部分用我想要回答的各種陳述來調用語音選項。最初提示出現在下一個完美的提示中,但它沒有將每個文本分配給相應的編輯文本字段。它只將語音記錄到最後提示的文本中。現在對這個線程一些幫助我的代碼更新到以下,其中checklv1等對應唯一整數:

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); 
} 

下面的代碼部分顯示的文本分配給editTextlv1lv2lv3

代碼現在已經取得進展,輸入語音到文本短語到每個list view領域。然而,我唯一的問題是,lv3包含正確的短語,lv1也包含正確的短語,但lv2是一個相同的短語lv1當它應該是與lv2對應的短語。最有可能在檢查任務中出現錯誤。

如果任何人都可以,請幫助我,我已經將不勝感激上面的代碼出錯

+0

startIntent - > onActivityResult - > startIntent - > onActivityResult - > startIntent - > onActivityResult。不要忘記處理您保存的狀態。 –

+0

你知道我應該把代碼放在startIntent,onActivityResult @Eugen Pechanec嗎? –

+0

來吧,你可以找出自己。不要立即開始所有的語音識別,只有最後的請求才會得到兌現,就像您驗證一樣。而是開始第一個onClick。當結果成功返回時,啓動第二個,依此類推。 –

回答

2

check場要傳遞到startActivityForResult是你應該使用區分正在執行的行動是什麼。在此處傳遞3個不同的值並在onActivityResult中打開它們以確定要更新哪個UI部分。

startActivityForResult(i2, checkLv1);

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode == RESULT_OK) { 
     switch(requestCode) { 
      case checkLv1: 
       update(lv1); 
     ... 
+0

感謝您的回覆,你介意澄清onClick方法和onActivityResult方法中的哪一部分,以及我需要刪除我的代碼中最初的任何其他內容嗎? –

+0

您是否能夠好心地幫助我在上面顯示的更新後的代碼中出現錯誤@darnmason? –

相關問題