Java 如何从视图类在另一个类中重复活动
我需要在当前视图类的另一个类中重复一个活动 我正在开发一个简单的语音控制迷宫游戏应用程序。我需要在当前视图类的另一个类(语音类)中启动语音识别活动。voice类接受用户的语音输入,将其保存在变量中并返回到view类。该视图将根据从语音类的中获取的输入进行更改。必须重复此操作,直到光标到达迷宫中的最终位置 我如何在view类中重复此语音活动?在再次开始活动之前,必须短时间显示具有新更改的视图 这是我必须重复的功能。使用上下文从此函数调用语音活动Java 如何从视图类在另一个类中重复活动,java,android,android-activity,android-view,Java,Android,Android Activity,Android View,我需要在当前视图类的另一个类中重复一个活动 我正在开发一个简单的语音控制迷宫游戏应用程序。我需要在当前视图类的另一个类(语音类)中启动语音识别活动。voice类接受用户的语音输入,将其保存在变量中并返回到view类。该视图将根据从语音类的中获取的输入进行更改。必须重复此操作,直到光标到达迷宫中的最终位置 我如何在view类中重复此语音活动?在再次开始活动之前,必须短时间显示具有新更改的视图 这是我必须重复的功能。使用上下文从此函数调用语音活动 public boolean voice_i
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(请求代码、结果代码、数据);
完成();
}
如果我理解正确,解决此问题的最佳方法是将语音识别作为一项服务运行。查看和。如果我理解正确,解决此问题的最佳方法是将语音识别作为一项服务运行。看和看