Android攻城狮OptionsMenu

Android的菜单一共有三种:OptionsMenu 选择菜单ContextMenu 上下文菜单SubMenu 子菜单创建选项菜单:在 Activity 里面重写 onCreateOptionMenu(),在里面设置菜单项。设置菜单项可以用代码动态地添加:menuadd(); 还可以通过 xml(在里面配置菜单项) 来配置,然后通过MenuInflater.inflate()设置。然后设置菜单的点击事件,重写 onOptionsItemSelected()。如图,是menu文件夹下的main.xml的代码。--------------重写onCreateOptionMenu():public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true;}--------------摘自评论区从Android3.0开始,Android并不要求手机设备上必须提供Menu菜单。与桌面菜单不同,Android菜单默认是看不到的,这样情况下,Android推荐使用ActionBar来代替菜单。


 1 public class MainActivity extends ActionBarActivity { 2  3  @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6  setContentView(R.layout.fragment_main); 7  8  } 9 10  @Override11 public boolean onCreateOptionsMenu(Menu menu) {12 13 // Inflate the menu; this adds items to the action bar if it is present.14 // xml加载:15 // getMenuInflater().inflate(R.menu.main, menu);16 // 动态设置菜单项17 MenuItem item = menu.add(1, 100, 1, "菜单一");18 item.setTitle("aaa");19 item.setIcon(R.drawable.ic_launcher);// api>=11它不显示图标20 menu.add(1, 101, 1, "菜单二");21 menu.add(1, 102, 1, "菜单三");22 23 return true;24  }25 26 // 创建点击事件27  @Override28 public boolean onOptionsItemSelected(MenuItem item) {29 // TODO Auto-generated method stub30 switch (item.getItemId()) {31 // xml方式:32 // case R.id.action_menu_item1:33 // Toast.makeText(MainActivity.this, "点击菜单一", 0).show();34 // break;35 //36 // case R.id.action_menu_item2:37 // Toast.makeText(MainActivity.this, "点击菜单二", 0).show();38 // break;39 // 动态设置菜单项:40 case 100:41 Intent intent = new Intent(MainActivity.this, SencondActivity.class);42  item.setIntent(intent);43 Toast.makeText(MainActivity.this, "点击菜单一", 0).show();44 break;45 case 101:46 Toast.makeText(MainActivity.this, "点击菜单二", 0).show();47 break;48 case 102:49 Toast.makeText(MainActivity.this, "点击菜单三", 0).show();50 break;51 52  }53 return super.onOptionsItemSelected(item);54  }55 56 }

 

相关文章