注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

悠游自在

似水流年,悠游天地,自在我心

 
 
 

日志

 
 
 
 

Xamarin:如何在ListView中实现ContextMenu  

2013-06-21 21:47:45|  分类: IT技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在任何一个View中实现ContextMenu都有几个标准步骤,我这里采取的是:

1 在Resource\layout中添加一个xml文件定义ContextMenu的内容,这样就省去了在代码中一条条Add菜单项的麻烦了,当然如果想要实现动态菜单项,就只能老老实实来了;

2 在Activity的OnCreate函数中找到要添加ContextMenu的控件,然后调用RegisterForContextMenu(此控件);

3 重载Activity的OnCreateContextMenu 函数,在这里我使用资源载入菜单,方法如下:

        public override void OnCreateContextMenu(Android.Views.IContextMenu menu, View v, Android.Views.IContextMenuContextMenuInfo menuInfo)
        {
            base.OnCreateContextMenu (menu, v, menuInfo);
            MenuInflater inflater = new MenuInflater (this);
            inflater.Inflate (Resource.Layout.MyCtxMenu, menu);//MyCtxMenu就是我在第一步中添加的xml文件
        }

4 重载OnContextItemSelected 函数,响应菜单点击事件,这里有个和一般控件的上下文菜单处理不同的地方,就是如何获得点击的是哪个List项?用以下方法就可以了:

        public override bool OnContextItemSelected(IMenuItem item)
        {
            base.OnContextItemSelected (item);
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)(item.MenuInfo);
            int tPos=info.Position;//这个就是点击的ListItem的位置了
            switch(item.ItemId)
            {

                ...//这里就可以判断选中的是哪个菜单命令,并结合tPos,对具体的List项进行操作了
            }
            return true;
        }

  评论这张
 
阅读(536)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018