2012-07-26 70 views
3

我已经有了GameActivity课程并且在那里有一个方法setContentView(GameView)。在GameView类扩展View我有一个方法:通过touchEvent从课堂观看Android的整理活动

public class GameView extends View{ 
... 
    public boolean onTouchEvent(MotionEvent event){ 
     switch(event.getAction()){ 
      case MotionEvent.ACTION_DOWN:  
      Intent intent = new Intent (contexTmp, MainActivity.class); 
      contexTmp.startActivity(intent); 
      //finish(); //->how to finish this activity from class view 
     } 
    } 
} 

正如你在GameView类的方法onTouchEvent()看到,当我追问,我改变了活动MainActivity按钮。我的问题是:如何从班级视图中完成活动(首先我必须完成当前活动,之后再进入下一个活动),因为方法: finish()不起作用?

+0

您必须获得对活动的引用并调用完成方法 – silentnuke 2012-07-26 22:47:39

回答

4

使用getContext()返回用于创建视图的活动背景:只要你GameView是活动中的一个视图

public boolean onTouchEvent(MotionEvent event) { 
    switch(event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      ... 
      ((Activity)getContext()).finish(); 
    } 
} 
1

,你可以简单地调用:

((Activity)getContext()).finish(); 

这将是创建该视图的活动的上下文。所以,只要确保你想完成的活动,你就可以走了!