onActivityResult方法中的requestCode在这里充当键。您必须为不同的活动定义不同的requestCode。
活动1
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
try {
startActivityForResult(intent, 1);
} catch (ActivityNotFoundException a) {
Toast t = Toast.makeText(getApplicationContext(), "Opps! Your device doesn't support Speech to Text",Toast.LENGTH_SHORT);
t.show();
}
活动2
Intent check = new Intent();
check.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(check, 2);
onActivityResult(活动结果)
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case (1):
//Code for Speech Recognition
break;
case (2):
//Code for Speech Synthesis (Text to Speech)
break;
}
请注意,我在这里使用了两个不同的数字-
startActivityForResult(意图,1);
startActivityForResult(检查,2);
这1和2是请求代码。然后,noActivityResult方法相应地进行切换。
我为您量身定制了代码。只需替换Intent声明。然后通过为不同的活动添加单独的代码来编辑onActivityResult。