0

嘿,所以我有这个功能,它会说话然后接受输入,然后尝试使用该输入再次说话。现在的问题是它会说话而不是等待输入

public void fun(){
  speakOut("what is your name");
  startActivityForResult(intent, 2);
  speakout("how old are you");

}

我的程序有点像上面的例子。当我运行它时,它只问第二个问题,然后运行活动(在我的情况下,它是一个语音 RECOGNIZE_SPEECH 意图。所以我想要的是代码等待活动完成后再继续。或者我有什么错误的?

编辑:

好吧,我想我试图过多地简化我的问题 =P 在活动结束后我实际上有超过 1 个问题要问。我打算循环遍历它们,所以它类似于:

for(int i=0;i<listOfQuestions.size;i++){
    speakOut(listOfQuestions.get(i));
    startActivityForResults(intent,2);
}

这就是为什么我不能在 onActivityResult() 中提问的原因。除非,这是我可以做的事情

4

2 回答 2

1

您应该查看本教程,该教程解释了如何使用 onActivityResult() 在您开始使用 startActivityForResult() 的 Activity 结束时收到通知。

于 2013-10-01T12:29:33.903 回答
0

活动就像一个单独的程序一样开始(就像一个由该命令启动的线程)。因为在启动您的发言功能后,它会在您的意图加载之前快速处理。但实际上意图在发言呼叫之前开始了该过程。如果你想在意图后调用speakout

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if (requestCode == 2) {
        if (resultCode == RESULT_OK){
               do_something_with_data();
               speakout("how old are you");
          }
    }
}

另请阅读从活动文档中获取结果。

于 2013-10-01T12:41:08.410 回答