。
2.MainActivity
package com.example.menutest; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true;//返回true表示显示menu } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()){ case R.id.menu_about: Toast.makeText(MainActivity.this, ""+"关于", Toast.LENGTH_SHORT).show(); break; case R.id.menu_settings: Toast.makeText(MainActivity.this, ""+"设置", Toast.LENGTH_SHORT).show(); break; case R.id.menu_quit: Toast.makeText(MainActivity.this, ""+"退出", Toast.LENGTH_SHORT).show(); break; default: break; } //Toast.makeText(MainActivity.this, ""+item.getItemId(), Toast.LENGTH_SHORT).show(); return super.onOptionsItemSelected(item); } }
public boolean onCreateOptionsMenu(Menu menu):使用此方法调用OptionsMenupublic boolean onOptionsItemSelected(MenuItem item):选中菜单项后发生的动作public void onOptionsMenuClosed(Menu menu):菜单关闭后发生的动作public boolean onPrepareOptionsMenu(Menu menu):选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单public boolean onMenuOpened(int featureId, Menu menu):单打开后发生的动作。
二、ContextMenu
参考Android菜单详解(四)——使用上下文菜单ContextMenu
在Windows中,我们已经习惯了在文件上单击右键来执行“打开”、“重命名”、“剪切”、“删除”等操作,这个右键弹出的菜单就是上下文菜单。
每个文件的操作 上下文菜单与Options Menu最大的不同在于,Options Menu的拥有者是Activity,而上下文菜单的拥有者是Activity中的View。每个Activity有且只有一个Options Menu,它为整个Activity服务。而一个Activity往往有多个View,并不是每个View都有上下文菜单,这就需要我们显示地通过registerForContextMenu(View view)来指定。
1.注册上下文菜单
/** * 上下文菜单演示Demo * * @author CodingMyWorld 2011-8-27 下午03:22:39 */publicclass SampleContextMenuActivity extends ListActivity { privatestaticfinal String TAG ="SampleContextMenuActivity"; @Override protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 显示列表 simpleShowList(); // 为所有列表项注册上下文菜单 this.registerForContextMenu(getListView()); } privatevoid simpleShowList() { // list item String[] files =new String[] { "文件1", "文件2", "文件3", "文件4" }; // simple array adapter ArrayAdapter adapter =new ArrayAdapter( this, android.R.layout.simple_list_item_1, files); // set adapter this.setListAdapter(adapter); Log.v(TAG, "show simple list"); }}
2.生成上下文菜单
@Overridepublicvoid onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { Log.v(TAG, "populate context menu"); // set context menu title menu.setHeaderTitle("文件操作"); // add context menu item menu.add(0, 1, Menu.NONE, "发送"); menu.add(0, 2, Menu.NONE, "标记为重要"); menu.add(0, 3, Menu.NONE, "重命名"); menu.add(0, 4, Menu.NONE, "删除");}
3.响应上下文菜单项
@Overridepublicboolean onContextItemSelected(MenuItem item) { // 得到当前被选中的item信息 AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); Log.v(TAG, "context item seleted ID="+ menuInfo.id); switch(item.getItemId()) { case1: // do something break; case2: // do something break; case3: // do something break; case4: // do something break; default: return super.onContextItemSelected(item); } return true;}
三、SubMenu
参考Android菜单详解(三)——SubMenu和IconMenu
Paste_Image.png Paste_Image.png 子菜单提供了一种自然的组织菜单项的方式,它被大量地运用在windows和其他OS的GUI设计中。Android同样支持子菜单,你可以通过addSubMenu(int groupId, int itemId, int order, int titleRes)方法非常方便的创建和响应子菜单。
@Overridepublicboolean onCreateOptionsMenu(Menu menu) { int base = Menu.FIRST; // 一个menu可以包括多个子菜单 SubMenu subMenu = menu.addSubMenu(base, base+1, Menu.NONE, "系统设置"); // 子菜单可以包括多个菜单项 MenuItem menuitem1 = subMenu.add(base, base+1, base+1, "显示设置"); subMenu.add(base, base+2, base+2, "网络设置"); subMenu.add(base, base+3, base+3, "高级设置"); subMenu.add(base, base+4, base+4, "安全设置"); // 子菜单项不支持显示图标,这样做是没意义的,尽管不会报错! menuitem1.setIcon(R.drawable.displaysettings); //但是子菜单本身是支持图标的 subMenu.setIcon(R.drawable.settings); // 显示菜单请返回true return true;}
- Android Material Design: NavigationView抽屉导航菜单
- android 为activity添加optionMenu选项菜单
- android socket 配置文件
- Android学习笔记之mainfest文件中android属性
- android 下载文件注意事项
- mainfest文件中android属性
- ~/.dirlst 文件
- Android 读取和保存文件(手机内置存储器)
- Android——文件存储
随机推荐
-
Lombok,嗯,真香香香香香香!
-
6组精美的纯CSS3悬浮飘带特效
-
向钢铁侠学习怎样开发软件[每日前端夜话0
-
超酷的 CSS3 复古风格 3D 按钮
-
HTML5 3D魔方动画
-
啥?听说你还在手写复杂的参数校验?
-
分析ARM ANDROID市场及技术结合点 转载
-
以后要是再写for循环,我就捶自己
-
HTML5/CSS3 实现漂亮的 3D 滑杆插件
-
jQuery/CSS3邮票边框的照片墙相册