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