2014-10-17 80 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

我已經解決了這個問題。 我的手機有一個菜單按鈕,按下該按鈕將顯示菜單列表。

我試圖與不具有菜單按鈕更新的手機,菜單在操作欄中顯示出來。

問候