我需要在当前视图类的另一个类中重复一个活动。
我开发了一个简单的语音控制迷宫游戏应用程序。我需要从当前的View类开始另一个类(语音类)中的语音识别活动。语音类接受来自用户的语音输入,将其保存在变量中并返回到视图类。基于从语音类获得的输入来改变视图。这必须重复,直到光标到达迷宫中的最终位置。
如何从视图类重复此语音活动?在重新开始活动之前,必须在短时间内显示包含新更改的视图。
这是我必须重复的功能。使用上下文从此函数调用语音活动。
public boolean voice_input() {
int result;
result = 0;
boolean moved = false;
try{
Thread.sleep(1000);
}
catch(InterruptedException ex){
}
Context context = getContext();
Intent i = new Intent(context, voice.class);
((Activity)context).startActivityForResult(i,requestCode);
result = v.getVariable();
switch(result) {
case 1:
moved = maze.move(Maze.UP);
break;
case 2:
moved = maze.move(Maze.DOWN);
break;
case 3:
moved = maze.move(Maze.RIGHT);
break;
case 4:
moved = maze.move(Maze.LEFT);
break;
}
result = 0;
if(moved) {
invalidate();
if(maze.isGameComplete()) {
showFinishDialog();
}
}
return true;
}
这是语音课中必须重复的活动。
public void startVoiceRecognitionActivity()
{
match = 0;
final int REQUEST_CODE = 1234;
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
startActivityForResult(intent, REQUEST_CODE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK)
{
ArrayList<String> matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
match = 0;
if (matches.contains("left")) {
match = 4;
}
if (matches.contains("right")) {
match = 3;
}
if (matches.contains("up")) {
match = 1;
}
if (matches.contains("down")) {
match = 2;
}
}
super.onActivityResult(requestCode, resultCode, data);
finish();
}