Android,如何创build选项菜单

在这里,我试图做出选项菜单,但菜单不显示在屏幕上,所以请指导我在哪里做错误…

提前致谢…

MenuTest.java

public class MenuTest extends Activity { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.more_tab_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.feeds: break; case R.id.friends: break; case R.id.about: break; } return true; } } 

而我的XML文件是more_tab_menu.xml

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/feeds" android:title="Feeds"/> <item android:id="@+id/friends" android:title="Friends"/> <item android:id="@+id/about" android:title="About"/> </menu> 

请指导我,再次感谢提前…

10 Solutions collect form web for “Android,如何创build选项菜单”

 public class MenuTest extends Activity { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.more_tab_menu, menu); // return true so that the menu pop up is opened return true; } } 

并且不要忘记按下模拟器或设备上的菜单button或图标

请参阅:==

 private int group1Id = 1; int homeId = Menu.FIRST; int profileId = Menu.FIRST +1; int searchId = Menu.FIRST +2; int dealsId = Menu.FIRST +3; int helpId = Menu.FIRST +4; int contactusId = Menu.FIRST +5; @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(group1Id, homeId, homeId, "").setIcon(R.drawable.home_menu); menu.add(group1Id, profileId, profileId, "").setIcon(R.drawable.profile_menu); menu.add(group1Id, searchId, searchId, "").setIcon(R.drawable.search_menu); menu.add(group1Id, dealsId, dealsId, "").setIcon(R.drawable.deals_menu); menu.add(group1Id, helpId, helpId, "").setIcon(R.drawable.help_menu); menu.add(group1Id, contactusId, contactusId, "").setIcon(R.drawable.contactus_menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 1: // write your code here Toast msg = Toast.makeText(MainHomeScreen.this, "Menu 1", Toast.LENGTH_LONG); msg.show(); return true; case 2: // write your code here return true; case 3: // write your code here return true; case 4: // write your code here return true; case 5: // write your code here return true; case 6: // write your code here return true; default: return super.onOptionsItemSelected(item); } } 

改变你的onCreateOptionsMenu方法返回true 。 引用文档 :

你必须返回true才能显示菜单。 如果您返回false,则不会显示。

 @Override public boolean onCreateOptionsMenu(Menu menu) { new MenuInflater(this).inflate(R.menu.folderview_options, menu); return (super.onCreateOptionsMenu(menu)); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.locationListRefreshLocations) { Cursor temp = helper.getEmployee(active_employeeId); String[] matches = new String[1]; if (temp.moveToFirst()) { matches[0] = helper.getEmployerID(temp); } temp.close(); startRosterReceiveBackgroundTask(matches); } else if (item.getItemId()==R.id.locationListPrefs) { startActivity(new Intent(this, PreferencesUnlockScreen.class)); return true; } return super.onOptionsItemSelected(item); } 

replacereturn super.onCreateOptionsMenu(menu);真实的回报; 在你的onCreateOptionsMenu方法这将有所帮助

你也应该在你的活动中有onCreate方法

 import android.app.Activity; import android.os.Bundle; import android.view.*; import android.widget.*; public class AndroidWalkthroughApp2 extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // show menu when menu button is pressed MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // display a message when a button was pressed String message = ""; if (item.getItemId() == R.id.option1) { message = "You selected option 1!"; } else if (item.getItemId() == R.id.option2) { message = "You selected option 2!"; } else { message = "Why would you select that!?"; } // show message via toast Toast toast = Toast.makeText(this, message, Toast.LENGTH_LONG); toast.show(); return true; } } 

以前的答案已经涵盖了android中使用的传统菜单。 如果你正在寻找替代品,他们是另一种select

https://github.com/AnshulBansal/Android-Pulley-Menu

滑轮菜单是传统菜单的替代方式,它允许用户直观地select任何活动选项。 通过向下拖动屏幕来显示菜单,并且在该手势中,用户也可以select任何选项。

Android UI编程有点棘手。 要启用“选项”菜单,除了您编写的代码之外,还需要在覆盖方法OnCreate()中调用setHasOptionsMenu(true)。 希望这会帮助你。

如果您的设备运行Android v.4.1.2或之前,
菜单不会显示在操作栏中。
但是可以通过菜单(硬件)button进行访问。

美好的一天,我被检查如果你select空Activity你没有build立在菜单function对于build立你必须select基本Activity这样你的Activity将运行onCreateOptionsMenu

或者如果你从styles.xml的Start Chenge开始在Empty Activity工作的话

  • 菜单中的碎片不显示
  • 我如何dynamic创build菜单项?
  • menuitem上的actionlayout什么都不做
  • 在顶部和底部的操作项目的Android拆分操作栏?
  • PopupWindow - 在外部点击时closures