2014-10-17 63 views
0

我拉我的头发试图让菜单欺骗我的主要活动,但无济于事。Android的菜单不膨胀

我使用的Android Studio和设计视图显示,XML的菜单项都理所当然地定义。

然而,当我运行代码或者在手机(运行Android 4.4.2)或仿真器,菜单项都没有显示出来。当我按下菜单时没有任何反应。

任何启蒙将是最受欢迎的。

菜单XML - my.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:id="@+id/item1" android:title="Option1"></item> 
<item android:id="@+id/item2" android:title="Option2"></item> 
<item android:id="@+id/item3" android:title="Option3"></item> 
<item android:id="@+id/item4" android:title="Option4"></item> 
<item android:id="@+id/item5" android:title="Option5"></item> 
<item android:id="@+id/item6" android:title="Option6"></item> 
</menu> 

活动课 - myActivity.java

package com.example.mymenu; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.util.Log; 
import android.widget.Toast; 

public class MyActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.my, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.item1: 
      Toast.makeText(this, " " + 
        "Option1", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item2: 
      Toast.makeText(this, "Option2", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item3: 
      Toast.makeText(this, "Option3", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item4: 
      Toast.makeText(this, "Option4", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item5: 
      Toast.makeText(this, "Option5", Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.item6: 
      Toast.makeText(this, "Option6", Toast.LENGTH_SHORT).show(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
} 

布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".MyActivity"> 

    <TextView 
     android:text="@string/hello_world" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</RelativeLayout> 
+0

它看起来不错我..只是清理项目.. – dreamcoder 2014-10-17 06:03:19

+0

有没有如你所说,仍然没有运气。 – user4152230 2014-10-18 16:30:30

回答

1

我认为这个问题是你必须已经建立了我。在布局文件夹中创建xml。在菜单文件夹中创建my.xml。

+0

如果这有助于你解决问题。您可以将其标记为已接受:) – 2014-10-17 07:08:05

+0

嗨,my.xml已经在菜单文件夹 – user4152230 2014-10-18 16:31:05

0

交叉检查,如果menu.xml文件是在菜单文件夹,而不是任何其他res文件夹类似的布局。 试图夸大它在行动栏? 如果是,则尝试在menu.xml文件使用下面的代码

android:showAsAction="always"

参见:http://developer.android.com/guide/topics/ui/menus.html

+0

嗨!添加showAsAction =总是会给我第一个项目在操作栏上,但没有点击它不会让我剩下的项目被列出。 – user4152230 2014-10-18 16:35:12

0
Hi try this if you want to display it in Actionbar. 

    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
     <item 
     android:id="@+id/action_settings" 
     android:icon="@drawable/action_overflow" 
      app:showAsAction="always"/> 
     <menu> 
     <item android:id="@+id/item1" android:title="Option1"></item> 
     <item android:id="@+id/item2" android:title="Option2"></item> 
     <item android:id="@+id/item3" android:title="Option3"></item> 
     <item android:id="@+id/item4" android:title="Option4"></item> 
     <item android:id="@+id/item5" android:title="Option5"></item> 
     <item android:id="@+id/item6" android:title="Option6"></item> 
    </menu> 
</menu> 
+0

好的!按照您的建议,除了遵循操作栏文档中的说明之外。在您建议的修改中,应用程序:将引用我的应用程序名称。我得到的第一个项目显示在行动上,但没有其余的项目。 – user4152230 2014-10-18 16:32:40

+0

在每个项目内添加android:showAsAction =“never”将起作用!例如: 2014-10-21 05:34:54

3

我已经解决了这个问题。 我的手机有一个菜单按钮,按下该按钮将显示菜单列表。

我试图与不具有菜单按钮更新的手机,菜单在操作栏中显示出来。

问候