我有一個應用程序,它爲用戶提供了使用按鈕來選擇是或否的一系列問題的選項。我想在用戶說「是」或「否」時添加免提功能,並且應該訪問相同的代碼塊。然而,我很難理解我是如何「虛擬」調用yes/no按鈕的setOnCheckedChangeListener事件來獲取代碼的?是否可以進行調用它的虛擬按鈕調用?我附上了一段代碼,希望能夠說明一些情況。在沒有按鈕的情況下調用setOnCheckedChangeListener點擊
代碼:
recognizerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
speech.startListening(recognizerIntent);
public void onResults(Bundle results)
{
ArrayList<String> matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
for (String result : matches)
{
switch (result)
{
case "yes":
speech_response_yes=true;
break;
case "no":
speech_response_no=true;
break;
}
}
}
answer.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
{
// checkedId is the RadioButton selected
if (checkedId == R.id.yesButton || speech_response_yes)
{
....perform relevant tasks
}
您可以將相關的代碼可能移動到一個單獨的函數,然後調用從按鈕單擊處理以及語音處理程序的功能? –
是的,這是一個選項,但由於與每個後續點擊相關的數量代碼,試圖避免類似代碼的多個代碼,而是使用相同的 – user5351986