1

我试图获得一个自定义菜单,以便在我的手机上单击菜单按钮时显示。它根本没有显示。

我在此文件夹 /res/drawable 中有一个名为 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>

主应用

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;
    }
}
4

3 回答 3

4
inflater.inflate(R.menu.my_menu, my_menu); 

仅通过删除即可解决代码
android:showAsAction="ifRoom"

于 2012-04-07T13:53:24.313 回答
2

我有一个类似的问题。我没有收到任何错误,只是菜单按钮没有出现。我通过更改 android:theme="@style/AppBaseTheme" (或与 minSDK 兼容的任何其他主题) 解决了 Manifest.xml 文件中的问题。因为我弄乱了 style.xml 文件并创建了自己的文件。这导致了问题。可能会有所帮助。

于 2013-05-05T13:42:23.020 回答
1

每件事看起来都很干净,只需干净并构建您的应用程序。而且,如果这些在卸载应用程序并重新安装后无法解决您的问题。

另外,如果您的 xml 名称是 Menu.xml,请使其成为 menu.xml ... 区分大小写

于 2012-04-07T03:09:44.090 回答