我正在尝试创建菜单演示,但我无法看到菜单。我能看到的唯一内容是布局中的“TextView”视图。以下是代码:
(res \ menu)中的menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:title="@string/new_game"
android:id="@+id/new_game">
</item>
<item
android:title="@string/quit"
android:id="@+id/quit"
>
</item>
</group>
</menu>
demomenu.java
package com.test.demomenu;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
public class demomenu extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
//super.onCreateOptionsMenu(menu);
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
Toast.makeText(this, "This is the item", Toast.LENGTH_LONG).show();
return true;
}
}
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
的strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, demomenu!</string>
<string name="app_name">Demo Menu</string>
<string name="new_game">New Game</string>
<string name="quit">Quit</string>
</resources>
当我运行项目时,我只能看到“TextView”而不是菜单。如果有人能告诉我应用程序的错误,我将不胜感激。
谢谢, SID
答案 0 :(得分:1)
您使用的是R.menu.game_menu
,但您说您的xml名为menu.xml
。
你在logcat中得到了什么吗?你试过调试吗?按菜单按钮时会调用onCreateOptionsMenu
吗?
将您的代码与我的tutorial进行比较我无法找到重要的区别。
答案 1 :(得分:1)
答案 2 :(得分:1)
希德......试试using LogCat。
所以导入
import android.util.*;
宣布你的标签
private static final String TAG= "Sid";
将调试代码添加到onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
Log.d(TAG,"onOptionsItemSelectedCalled");
return true;
}
运行您的应用并按菜单按钮。现在查看LogCat,在过滤TAG:Sid和Log Level Debug之后,查看消息标签:Sid消息:“onOptionsCalled”。
JAL