Android Menu初步学习
来源:互联网 发布:天音淘宝破解版 编辑:程序博客网 时间:2024/06/15 12:05
Android 为我们提供了三种menu类型:Options Menu 、Contextual Menu、 Popup Menu。。
Options Menu
Options Menu 是最常见也是最简单的一种。通常当我们按Menu键的时候,在android窗口底部出现的就是一个Options Menu。它主要有两个方法:
onCreateOptionsMenu()和
onOptionsItemSelected()方法。
在onCreateOptionsMenu()方法中,我们主要是将menu的xml文件转化成Object,也可以自己使用add方法,添加menu的Item。
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.group_menu, menu);return true;}在onOptionsItemSelected()方法中,我们去判断哪个选择了哪个按钮,然后可以进行对应的自定义操作。
@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch(item.getItemId()){case R.id.action_settings:Toast.makeText(MainActivity.this, item.getTitle(), Toast.LENGTH_SHORT).show();return true;case R.id.action_help:Toast.makeText(MainActivity.this, item.getTitle(), Toast.LENGTH_SHORT).show();return true;default:return super.onOptionsItemSelected(item);}}
当你需要更新你的menu的时候,你需要调用invalidateOptionsMenu()方法,让系统去调用 onPrepareOptionsMenu().
Contextual Menu
我们可以为任何一个View 提供一个Contextual Menu,它可以影响这个View中特定的Item 。比如:当我们点击ListView或者GridView中的某个Item 的时候,可以生成一个Context Menu。利用这个Context Menu上,我们可以对所点击的Item进行诸如修改,删除或者其他等操作。首先我们需要为某个View 注册ContextMenu,这样我们View上的数据才能关联到这个ContextView。具体方法: registerForContextMenu(someView)。
当我们注册的View接收到一个long-click事件的时候,系统就会调用
onCreateContextMenu()
方法,生成我们的Context Menu.
@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {;super.onCreateContextMenu(menu, v, menuInfo);getMenuInflater().inflate(R.menu.context_menu, menu);}我们实现
onContextItemSelected()方法。对相应的item进行自定义的操作。
@Overridepublic boolean onContextItemSelected(MenuItem item) {AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();switch(item.getItemId()){case R.id.action_edit:display(String.valueOf(info.id));return true;case R.id.action_delete:display(String.valueOf(info.id));return true;default:return super.onContextItemSelected(item);}}以上我么所说的是a float context menu,即菜单式浮在我们的View上的。下节会将如何使用Contextual action mode,即把菜单添加到Action Bar中。Options Menu只需要在xml文件中
android:showAsAction="ifRoom"
,就可以将菜单显示在Action Bar中。
Popup Menu
Popup Menu是一种根植于某个View的菜单,要么出现在View 的下方,要么出现在View的上方。它可以作为一个下拉列表使用,也可以为某个命令或事件提供参数选择或者备用选项。这里,我们首先在someView(某个View)的XML定义里添加android:onClick="showPopup"。同时添加showPopup函数。
public void showPopup(View v){PopupMenu popup = new PopupMenu(this,v);popup.getMenuInflater().inflate(R.menu.context_menu, popup.getMenu());popup.setOnMenuItemClickListener(new OnMenuItemClickListener(){@Overridepublic boolean onMenuItemClick(MenuItem item) {switch(item.getItemId()){case R.id.action_edit:display("edit");return true;case R.id.action_delete:display("delete");return true;default:return false;}}});popup.show();}同时在showPopup函数中添加OnMenuItermClickListener监听onMenuItemClick事件,系统回调
onMenuItemClick()方法,其中你可以做一些自定义操作。
- Android Menu初步学习
- Android menu 使用初步
- Android学习之menu
- Android UI学习 - Menu
- Android学习之menu
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android UI学习 - Menu
- Android学习之menu
- android menu学习小记
- Android学习笔记-Menu
- Android学习之Menu
- Android UI学习 - Menu
- linux下使用convert命令修改图片分辨率
- session常见问题解答
- dsPIC33F之True Independent PWM output
- strut2配置
- CGContextSaveGState与UIGraphicsPushContext的区别
- Android Menu初步学习
- Java--设计模式之观察者模式
- cocos2d-x 格斗游戏教程(三)
- 从Mac上快速将pdf文件转移到iPad/iPhone上阅读
- SVD分解的理解
- cocos2d-x格斗游戏教程(五)
- Ubuntu 笔记 新手分享
- 参数跟踪---快速调试
- Mac使文件/文件夹隐藏或显示命令