我正在尝试创建一个菜单项,以便当用户单击手机上的菜单按钮时,它会显示此菜单。我的代码正在编译并显示一个菜单,但不显示与菜单按钮相关联的图像或文本。
我在文件夹 res/drawable/inage1icon.png 中有图像 知道问题是什么吗?
下面是代码
package com.webview;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.MenuInflater;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.view.Menu;
import android.view.MenuInflater;
public class WebViewActivity extends Activity {
WebView mWebView;
public boolean onCreateoptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu)
return true;
}
}
主菜单.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/buttoneone"
android:icon="@drawable/image1icon"
android:title="@string/showimage1" />
</menu>
字符串.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, WebViewActivity!</string>
<string name="app_name">WebView</string>
<string name="showimage1">IMAGE ONE</string>
<color name="background">#000000</color>
</resources>
最佳答案
这是复制和粘贴错误,还是您的代码在应用中的方式?
您拼错了方法名称。应该是:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu)
return true;
}
而您有 public boolean onCreateoptionsMenu(Menu menu)
。另外,返回父类(super class)的方法也是个好主意;不要说 return true
,而是说 return(super.onCreateOptionsMenu())
。
编辑:此外,如果您在 Eclipse 中进行开发,如果您使用快捷方式 Cmd+Opt+s 并选择 Override/Implement Methods
,则可以确保不会出现此类拼写错误.在该菜单中,Eclipse 将列出您扩展的类中的所有方法。
关于安卓菜单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9366844/