2014-01-28
歇息了近一个月,在家无聊之际,闲下来重新捡起了毕设开发。
今天花了一下午熟悉了下以前的东西,又给新的添加了个功能,以前一直想加的,就是gridview长按弹出对话框的实现。
使用的是上下文菜单,需要建立一个上下文菜单的选项文件:contextmenu.xml
然后重新这两个方法:
完成后需要给gridview添加事件绑定:
registerForContextMenu(gridView);//直接注册上下文菜单
为了同步实现其他需要的设置,如长按的时候将选中的那个图片的信息保存到静态变量,我还重写了gridview的setOnItemLongClickListener方法:
这样,在长按弹出上下文菜单的同时,还可以将选中的图片信息记录下来,用以在弹出的对话框中选择功能进行操作,如定位,删除选中图片等。
定位暂时还没实现,删除我是直接调用删除按钮的callonclick事件触发点击:delete.callOnClick();//直接调用删除按钮
歇息了近一个月,在家无聊之际,闲下来重新捡起了毕设开发。
今天花了一下午熟悉了下以前的东西,又给新的添加了个功能,以前一直想加的,就是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();//直接调用删除按钮