无需单击按钮即可调用 setOnCheckedChangeListener
Invoking setOnCheckedChangeListener without a button click
我有一个应用程序,让用户可以选择使用按钮来单击是或否来回答一系列问题。我想在用户说是或否的地方添加免提功能,它应该访问相同的代码块。然而,我对 "virtually" 如何调用 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
}
仅通过将单选按钮设置为选中,您将调用 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);
}
}
}
我有一个应用程序,让用户可以选择使用按钮来单击是或否来回答一系列问题。我想在用户说是或否的地方添加免提功能,它应该访问相同的代码块。然而,我对 "virtually" 如何调用 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
}
仅通过将单选按钮设置为选中,您将调用 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);
}
}
}