Java 如何从视图类在另一个类中重复活动

Java 如何从视图类在另一个类中重复活动,java,android,android-activity,android-view,Java,Android,Android Activity,Android View,我需要在当前视图类的另一个类中重复一个活动 我正在开发一个简单的语音控制迷宫游戏应用程序。我需要在当前视图类的另一个类(语音类)中启动语音识别活动。voice类接受用户的语音输入,将其保存在变量中并返回到view类。该视图将根据从语音类的中获取的输入进行更改。必须重复此操作,直到光标到达迷宫中的最终位置 我如何在view类中重复此语音活动?在再次开始活动之前,必须短时间显示具有新更改的视图 这是我必须重复的功能。使用上下文从此函数调用语音活动 public boolean voice_i

我需要在当前视图类的另一个类中重复一个活动

我正在开发一个简单的语音控制迷宫游戏应用程序。我需要在当前视图类的另一个类(语音类)中启动语音识别活动。voice类接受用户的语音输入,将其保存在变量中并返回到view类。该视图将根据从语音类的中获取的输入进行更改。必须重复此操作,直到光标到达迷宫中的最终位置

我如何在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();
}
public void startVoiceRecognitionActivity()
{      
匹配=0;
最终int请求_代码=1234;
意向意向=新意向(识别意向、行动、识别言语);
startActivityForResult(意图、请求代码);
}
受保护的void onActivityResult(int请求代码、int结果代码、意图数据)
{
if(requestCode==REQUEST\u CODE&&resultCode==RESULT\u OK)
{
ArrayList matches=data.getStringArrayListExtra(
识别者意图。额外结果);
匹配=0;
if(匹配.contains(“左”)){
匹配=4;
}
if(匹配.contains(“右”)){
匹配=3;
}
if(匹配.contains(“up”)){
匹配=1;
}
if(匹配.contains(“向下”)){
匹配=2;
}
}
super.onActivityResult(请求代码、结果代码、数据);
完成();
}

如果我理解正确,解决此问题的最佳方法是将语音识别作为一项服务运行。查看和。

如果我理解正确,解决此问题的最佳方法是将语音识别作为一项服务运行。看和看