Android ListView上的ContextMenu
来源:互联网 发布:淘宝直通车助手软件 编辑:程序博客网 时间:2024/04/30 18:20
我们常常会遇到这种需求——在一个列表的一项上加上修改、删除、标记等的操作,最常用的手法自然是长按这一项来弹出一个ContextMenu来提供这些功能了。但是有一个很重要的问题——如何获得当前列表上的位置呢?这个listview的contextMenu上的位置是一个比较隐蔽的属性,下面我通过一个小例子来说明。
首先,是这个Activity声明部分,这个很简单,就是一个ListView,然后给其注册一个ContextMenu。
public class PwdListActivity extends Activity implements OnClickListener {private ListView listv;private BaseAdapter adapter;private List<account> accountlist;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_pwdlist);listv = (ListView) findViewById(R.id.listview);listv.setOnItemClickListener(new MonItemClickListener());registerForContextMenu(listv);}
然后我们要写这个ContextMenu的创建和点击方法。
@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {getMenuInflater().inflate(R.menu.pwditem_menu, menu);super.onCreateContextMenu(menu, v, menuInfo);}
到这里都和普通的ContextMenu无异,下面是其选择方法——
@Overridepublic boolean onContextItemSelected(MenuItem item) {int position=((AdapterContextMenuInfo) item.getMenuInfo()).position;account acc=accountlist.get(position);switch (item.getItemId()) {case R.id.edit:Intent inedit = new Intent(this, EditAccoutActivity.class);inedit.putExtra("edit", acc.getId());startActivity(inedit);break;case R.id.delete:Builder builder = new AlertDialog.Builder(this);builder.setTitle("确定删除?").setMessage("点击确定删除该账户信息").setPositiveButton("确定", new MPositiveOnClickListener(acc)).setNegativeButton("取消", null);builder.create().show();break;case R.id.viewpwd:String shadow = acc.getShadow();ToastUtils.show(PwdListActivity.this, AES.dec(shadow));break;default:break;}return super.onContextItemSelected(item);}
这个方法最重要的是方法体第一行,ListView上的MenuInfo可以通过强转成AdapterContextMenuInfo来提取其成员变量position,而这个position指示的正是当前item对应listview中的位置,有此方法,我们的功能就能很方便地实现了。剩下的代码就不贴了^_^因为重点已经出来了~
0 0
- Android ListView上的ContextMenu
- Android中ListView的Adapter和ContextMenu
- Android ListView Item ContextMenu
- android的ContextMenu
- Android ContextMenu的使用
- Android ContextMenu和Listview配合使用
- android---ContextMenu操作(长按listview)
- ListView 与ContextMenu的关联管理
- android知识点总结 包括数据库的使用 listview适配 contextmenu的使用 和 contentprovider使用
- Android中ListView通过ContextMenu删除当前点击的一行数据
- Android 上下文菜单:给ListView注册ContextMenu后获取被长按item的position
- Android中ContextMenu的使用
- Android中ContextMenu的使用
- Android中ContextMenu的使用方法
- Android学习笔记(四二):SQLite、ListView、ContextMenu
- Android学习笔记(四二):SQLite、ListView、ContextMenu
- Android实战技巧: ListView之ContextMenu无法弹出
- Android学习笔记(四二):SQLite、ListView、ContextMenu .
- 一段爱情,因为男方父母的阻止,我和他只能有缘无份吗
- 54 JQUERY与DOM 添加 复制 移除 替换 包裹 遍历子元素
- 随笔~希望你们过的好
- Enable Remote Login to Start SSH Server in Mac OS X
- 鞍山赛区D题
- Android ListView上的ContextMenu
- 一次失败的面试——学会总结
- JBPM——工作流概念
- Servlet上传文件
- HTTP常见错误
- mac os下如何 lsusb
- 做一名优秀的开发者可没有说的那么简单
- 判断手机访问还是电脑访问JS
- 分析一个英文txt文本中单词出现的频率