在没有单击按钮的情况下调用setOnCheckedChangeListener

时间:2016-01-11 21:52:35

标签: android speech-to-text

我有一个应用程序,用户可以选择使用按钮单击是或否来回答一系列问题。我想添加免提功能,其中用户说是或否,它应该访问相同的代码块。然而,我对于我如何"虚拟"调用yes / no按钮的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
                }

1 个答案:

答案 0 :(得分:0)

只需将单选按钮设置为选中,即可调用SetOnCheckChangedListener。

for (int i=0;i<count;i++) {
    View o = answer.getChildAt(i);
    if (o instanceof RadioButton) {

      if (o.getId() == R.id.yourButton) { 
         o.setChecked(true);
      }
    }
}
相关问题