歇息了近一个月,在家无聊之际,闲下来重新捡起了毕设开发。

本文介绍如何在Android应用中为GridView添加长按弹出菜单功能,并实现定位与删除操作。
2014-01-28


歇息了近一个月,在家无聊之际,闲下来重新捡起了毕设开发。
今天花了一下午熟悉了下以前的东西,又给新的添加了个功能,以前一直想加的,就是gridview长按弹出对话框的实现。


使用的是上下文菜单,需要建立一个上下文菜单的选项文件:contextmenu.xml
然后重新这两个方法:
@Override
	public boolean onContextItemSelected(MenuItem item) {
		super.onContextItemSelected(item);
		switch(item.getItemId()){
		case R.id.contextItem1://定位
			//此时被选中的图片已经在静态变量中,可以提取图片对应xml的坐标进行传递并开启第二页面进行定位
			
			break;
		case R.id.contextItem2://删除
			delete.callOnClick();//直接调用删除按钮
			break;//
		}
		
		return super.onContextItemSelected(item);
	}


	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {		
		super.onCreateContextMenu(menu, v, menuInfo);
		getMenuInflater().inflate(R.menu.contextmenu, menu);//这里指定菜单项的xml文件资源
	}



完成后需要给gridview添加事件绑定:
registerForContextMenu(gridView);//直接注册上下文菜单


为了同步实现其他需要的设置,如长按的时候将选中的那个图片的信息保存到静态变量,我还重写了gridview的setOnItemLongClickListener方法:
gridView.setOnItemLongClickListener(new OnItemLongClickListener() {


			@Override
			public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
					int position, long arg3) {				
				Toast.makeText(MainActivity.this, "你选中了第"+(position+1)+"副图片", Toast.LENGTH_SHORT).show();		
				
				File file = util.getOnefileByDetailName(Util2.Image
						.get(position));// 找到缩略图
				
				String originalImage = "" + Path + file.getName();// 得到原始图片名,带路径的详细名
				String ThumbnailImage = "" + ThumbnailPath + file.getName();// 得到原始图片名,带路径的详细名
								
				onCheckPictureName=file.getName();				


				onOriginalSelectPicturePath = originalImage; // 设置被选中的原始图片路径到静态变量,用于删除
				onThumbnailSelectPicturePath = ThumbnailImage; // 设置被选中的缩略图片路径到静态变量,用于删除
				pictureNumD = position;
				
				selectPicture.setText("已选中图片:"+onCheckPictureName);
				
				return false;
			}
		});


这样,在长按弹出上下文菜单的同时,还可以将选中的图片信息记录下来,用以在弹出的对话框中选择功能进行操作,如定位,删除选中图片等。


定位暂时还没实现,删除我是直接调用删除按钮的callonclick事件触发点击:delete.callOnClick();//直接调用删除按钮











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值