2016-11-08 4 views
2

나는 아래의 컨텍스트 코드로 Surfaceview를 확장하는 Activity GamePanel을 보유하고 있습니다.Android : MainActivity에서 Surfaceview로 이동하는 방법

public GamePanel(Context context) 
{ 
super(context); 
this.mContext = context; 
mContext = getContext(); 

//add the callback to the surfaceholder to intercept events 
getHolder().addCallback(this); 

thread = new MainThread(getHolder(), this); 

//make gamePanel focusable so it can handle events 
setFocusable(true); 
} 

이제 GamePanel에서 MainMenu 클래스로 이동했습니다.

Intent intent = new Intent(mContext, MainMenu.class); 
       mContext.startActivity(intent); 

여기 내 질문입니다 : 버튼을 누르면 Surfaceview를 확장하는 MainMenu 활동에서 Gamepanel 활동으로 돌아가려면 어떻게해야합니까?

편집 :

public class GamePanel extends SurfaceView implements SurfaceHolder.Callback 
+0

는'Activity'가'SurfaceView'을 확장 할 수 없습니다 호출 할 수 있습니다 getContext()
는 그래서 View에서 다른 Activity을 시작 호출하여 Context의 인스턴스를 제공 할 수 있습니다. 넌 뭔가 잘못한거야. 'public class GamePanel extends ... '을 볼 수있는 클래스의 맨 윗줄을 보여주세요, 그래서 GamePanel이 실제로 무엇인지보실 수 있습니다. –

+0

여기 코드의 맨 윗줄이 있습니다 – DavidPrabhu

답변

1

내가 말했듯이, 그것이 Activity되지 않습니다 : 여기 내 GamePanel에 활동의 외형입니다. 제발 그걸 Activity이라고 부르지 마라. SurfaceView이며 서브 클래스는 View이고 이 아니고 서브 클래스는 Activity입니다.
활동을 시작하려면 Context 인스턴스 만 있으면됩니다.
모든 View, 당신은

Intent intent = new Intent(getContext(), MainMenu.class); 
       mContext.startActivity(intent); 
getContext().startActivity(intent); 
+0

내 용어를 고쳐 주셔서 고마워요. 하지만 메신저 활동 MainMenu에서 거기서부터 SurfaceView에 가고 싶어요. MainMenu 활동에서 SurfaceView 컨텍스트를 참조하는 방법은 무엇입니까? – DavidPrabhu

+0

@DavidPrabhu, 오, 죄송합니다. 질문을 망쳤습니다. 승인. 당신의'SurfaceView'는 어떤 활동에 의해 소유됩니다. 'MainMenu'를 시작한 것과 같은 방법으로 시작해야합니다. –

+0

샘플 코드를 포함시킬 수 있습니까? – DavidPrabhu