我试图在手机上点击菜单按钮时显示自定义菜单。它根本没有显示出来。
我在此文件夹/ res / drawable中有一个注册图标caled register.png。 我将my_menu.xml放在名为/ res / menu的文件夹中。 我的文件夹布局是否错误或者我的代码中是否有错误。
我将menu.xml重命名为my_menu.xml 我改变了我的代码,现在我得到了这些错误:
[2012-04-07 07:50:43 - HelloWebView] W / ResourceType(1560):错误的XML块:找不到根元素节点 [2012-04-07 07:50:43 - HelloWebView] C:\ Users \ josh \ workspace \ HelloWebView \ res \ menu \ my_menu.xml:4:错误:在包'android中找不到属性'showAsAction'的资源标识符“
my_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/register"
android:icon="@drawable/register"
android:title="@string/register"
android:showAsAction="ifRoom"/>
</menu>
Mainapp
public class HelloWebViewActivity extends Activity {
WebView mWebView;
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.Google.com");
mWebView.setWebViewClient(new HelloWebViewClient());
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);}
@Override
public boolean onCreateOptionsMenu(Menu my_menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, my_menu);
return true;
}
}
答案 0 :(得分:4)
inflater.inflate(R.menu.my_menu, my_menu);
单独解决了代码并删除了android:showAsAction="ifRoom"
答案 1 :(得分:2)
我有类似的问题。我没有收到任何错误,只是菜单按钮没有显示。我通过更改android:theme =“@ style / AppBaseTheme”(或与minSDK兼容的任何其他主题)修复了Manifest.xml文件中的问题。因为我搞乱了style.xml文件并创建了自己的文件。这引起了这个问题。可能有帮助。
答案 2 :(得分:1)
每件事看起来干净整洁,并构建您的应用程序。而且,如果这些都无法解决您的问题,一旦取消安装应用程序并重新安装它。
如果您的xml名称是Menu.xml,请将它设置为menu.xml ...区分大小写