Android菜单没有显示

时间:2012-04-07 01:55:35

标签: android android-layout android-menu

我试图在手机上点击菜单按钮时显示自定义菜单。它根本没有显示出来。

我在此文件夹/ 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;
    }
}

3 个答案:

答案 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 ...区分大小写