嘿所以我有这个功能说话然后接受输入,然后尝试再次使用该输入说话。现在的问题是所有的说话都没有等待输入
public void fun(){
speakOut("what is your name");
startActivityForResult(intent, 2);
speakout("how old are you");
}
我的程序有点像上面的例子。当我运行它时,它只询问第二个问题,然后运行活动(在我的情况下,它是一个语音RECOGNIZE_SPEECH意图。 所以我想要的是代码等待活动完成后再进行。或者我有什么不对劲?
编辑:
好吧我想我试图过多地简化我的问题= P. 事实上,我实际上有一个以上的问题要问。我正计划循环遍历它们,如:
for(int i=0;i<listOfQuestions.size;i++){
speakOut(listOfQuestions.get(i));
startActivityForResults(intent,2);
}
这就是为什么我不能在onActivityResult()中提出问题。除非,这就是我能做的事情
答案 0 :(得分:1)
您应该查看此tutorial,其中说明了当您使用startActivityForResult()开始的活动结束时如何使用onActivityResult()进行通知。
答案 1 :(得分:0)
活动开始就像一个单独的程序(想象一下由该命令启动的线程)。从启动后,您的speakout函数被调用,并在加载意图之前快速处理。但实际上意图是在说出来之前启动了这个过程。如果你想在“
”中意图调用它后调用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");
}
}
}