看来我只是无法理解 SurfaceView 和布局应该如何关联。我想做的是一个基本的游戏界面。My Main Activity 是标题屏幕,带有一个菜单和一个按钮,用于启动一个新的 Activity,它是主游戏屏幕,并使用扩展的 SurfaceView 来加载关卡并根据用户输入显示一些在屏幕上移动的图片。到目前为止一切顺利,现在我想在 SurfaceView 上放置一些特殊按钮(例如“结束游戏”)。我能够以编程方式添加按钮,但我不知道如何将它与我的布局相关联。所以,这是有效的:
public class LevelActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//remove title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//Prepare Game Class
LevelView mLevel = new LevelView(this);
FrameLayout mGame = new FrameLayout(this);
LinearLayout mGameWidgets = new LinearLayout (this);
Button EndGameButton = new Button(this);
mGameWidgets.addView(EndGameButton);
mGame.addView(mLevel);
mGame.addView(mGameWidgets);
//Prepare moving commands
EndGameButton.setWidth(300);
EndGameButton.setText("End Game");
setContentView(mGame);
}
}
但是我不能应用这个(或类似的东西): Button EndGameButton = (Button) mLevel.findViewById(R.id.end_game_button);
我不确定问题出在代码中还是在我的 xml 布局文件中,因此我很难弄清楚如何解决这个问题。
谢谢,亲切的问候。