2012-07-26 49 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(); 

這將是創建該視圖的活動的上下文。所以,只要確保你想完成的活動,你就可以走了!