2016-11-08 18 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アクティビティに戻るにはどうすればいいですか?

EDIT:

public class GamePanel extends SurfaceView implements SurfaceHolder.Callback 
+0

を呼び出すことができます。あなたは何か間違っている。 'public class GamePanel extends ... 'と表示されているクラスのトップラインを表示すると、あなたのGamePanelは本当に –

+0

です。ここにコードの先頭行があります – DavidPrabhu

答えて

1

私が言ったように、それはActivityではありません。ここに私のGamePanelの活動の一番上の行があります。 Activityとしてください。それはSurfaceViewであり、Viewのサブクラスであり、ではなく、サブクラスActivityである。
アクティビティを開始するには、Contextインスタンスが必要です。すべてのViewだからViewから別のActivityを開始するgetContext()
を呼び出すことにより、Contextのインスタンスを提供することができます
、あなたは `Activity`は` SurfaceView`を拡張することはできません

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

私の用語を訂正してくれてありがとう。しかし、私は、アクティビティMainMenuで、そこからSurfaceViewに行きたいと思っています。 MainMenuアクティビティでSurfaceViewコンテキストを参照する方法は? – DavidPrabhu

+0

@DavidPrabhu、ああ、申し訳ありませんが、あなたの質問を混乱させる。 OK。あなたの 'SurfaceView'はある活動によって所有されています。 'MainMenu'を起動したのと同じ方法で起動してください。 –

+0

サンプルコードを入れてもいいですか? – DavidPrabhu

関連する問題