我正在为Android开发一款游戏,而最简单的选项菜单实现并不起作用。由于游戏本身在一个扩展了LinearLayout的单独类(Engine.java)中,因此我想知道这是否是它看不见的原因。然而其他“顶级”@Overrides 如onStop()、onPause()等都可以正常触发。那么我是否需要在我的游戏类内部做些什么来显示选项菜单呢?
代码基础来自Pro Android Games SpaceBlaster示例: http://www.apress.com/9781430226475 (源码可供下载)
MyGame.class(应用程序入口点):
代码基础来自Pro Android Games SpaceBlaster示例: http://www.apress.com/9781430226475 (源码可供下载)
MyGame.class(应用程序入口点):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater factory = LayoutInflater.from(this);
// Set game layout
view = factory.inflate(R.layout.main, null);
setContentView(view);
// Enable view key events
view.setFocusable(true);
view.setFocusableInTouchMode(true);
} //End OnCreate()
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
res\menu\menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/icon"
android:icon="@drawable/icon" />
<item android:id="@+id/text"
android:title="Text" />
<item android:id="@+id/icontext"
android:title="Icon and text"
android:icon="@drawable/icon" />
</menu>
layout\main.xml:
<game.thegame.test.Engine
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_absolute"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF000000">
</game.thegame.test.Engine>