我正在Android上创建一个包含2个游戏的应用程序。我已经完成了这个但是我遇到了一个问题,即应该扩展到不同GameViews
的两个按钮正在扩展到相同的GameViews
。这些类都有不同的名称,我尝试更改一些内容以专门引用BallGameView类,但它会导致程序无法编译。我已经浏览了一下,看看在一个应用程序中是否有任何扩展到2个单独GameViews
的内容,但到目前为止还没有发现任何内容。
编辑:为清楚起见,问题是应该打开不同游戏的按钮正在打开同一个游戏。游戏正在编译但不是我想要的。我将发布指代以下不同游戏的代码。
public class BallGameActivity extends Activity {
GameView GV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ballgame);
GV = new GameView(this);
setContentView(GV);
参考球赛。
public class BallSplash extends Activity implements View.OnClickListener {
Button playBallButton;
Button guideButton;
Intent ballIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ball_splash);
playBallButton = (Button)findViewById(R.id.startBallGame);
guideButton = (Button)findViewById(R.id.guideButton);
playBallButton.setOnClickListener(this);
guideButton.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.startBallGame:
ballIntent = new Intent(this,BallGameActivity.class);
startActivity(ballIntent);
break;
case R.id.guideButton:
ballIntent = new Intent(this,Guide.class);
startActivity(ballIntent);
break;
}
}
参考精灵游戏
public class Splash extends Activity implements View.OnClickListener {
Button playButton;
Button instructionButton;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
playButton = (Button)findViewById(R.id.toPlay);
instructionButton = (Button)findViewById(R.id.toInstructions);
playButton.setOnClickListener(this);
instructionButton.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.toPlay:
intent = new Intent(this,GameActivity.class);
startActivity(intent);
break;
case R.id.toInstructions:
intent = new Intent(this,InstructionActivity.class);
startActivity(intent);
break;
}
}
答案 0 :(得分:0)
可能存在问题因为您拨打setContentView()
两次。你应该删除错误的。
答案 1 :(得分:0)
正确的方法是调用您要用作视图的类
BallGameView GV = new BallGameView(this);
setContentView(GV);
在您当前的代码中,您正在实例化GameView
,但这不是您想要的Activity
。您需要实例化BallGameView GV
。因为你正在使用
GV = new GameView(this);
setContentView();
在这两个活动中,无论你开始哪个活动,你都会看到同样的事情。所以问题从来没有开始活动或扩展任何事情。
此外,您可以删除
setContentView(R.layout.activity_ballgame);
该行将设置Activity以使用该布局。但是,由于您再次调用setContentView()
并使用extends SurfaceView
类,因此它会将“活动”设置为将其用作布局,从而使上述行无效。