文档章节

android gridview布局,实现长按某一个,所有项都显示删除的图标

归来熙
 归来熙
发布于 2013/09/08 10:11
字数 460
阅读 8312
收藏 11

最近一直忙着项目开发,有段时间没有写博文了,今天想跟大家分享的是长按gridview中的某一项显示删除图标,此时点击某项便可删除,再长按取消删除图标。

gridview的布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ll_grid_item"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >
  <FrameLayout
        android:id="@+id/starred_item_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center" >
        <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:background="@drawable/bg_btn_selector_deny"
      android:gravity="center"
      android:orientation="vertical"
      android:layout_marginTop="4dip"
      android:layout_marginRight="4dip" >
      <ImageView
          android:id="@+id/img"
          android:layout_width="60dip"
          android:layout_height="55dip" />
      <TextView
          android:id="@+id/name_tv"
          android:layout_width="70dip"
          android:layout_height="wrap_content"
          android:layout_marginTop="10dip"
          android:textColor="@android:color/black"
          android:textSize="15sp"
          android:textStyle="bold"
          android:gravity="center" />
     </LinearLayout>
      <ImageView
            android:id="@+id/delete_markView"
            android:layout_width="20dip"
            android:layout_height="20dip"
            android:adjustViewBounds="true"
            android:layout_gravity="right|top"
            android:visibility="gone"
            android:src="@drawable/delete"
           />
  </FrameLayout>
</LinearLayout>

gridview的adapter如下:

public class GridViewAdapter extends BaseAdapter{
 private String names[];

private int icons[];
 private Context mContext;
 private TextView name_tv;
 private ImageView img;
 private View deleteView;
 private boolean isShowDelete;//根据这个变量来判断是否显示删除图标,true是显示,false是不显示

 public FragmentGridViewAdapter(Context mContext,String names[], int icons[]) {
  this.mContext = mContext;
  this.names=names;

this.icons=icons;
 }
 public void setIsShowDelete(boolean isShowDelete){
  this.isShowDelete=isShowDelete;
  notifyDataSetChanged();
 }

 @Override
 public int getCount() {

  return icons.length;
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return icons[position];
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return position;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  convertView = LayoutInflater.from(mContext).inflate(
    R.layout.fragmet_grid_item, null);
  img = (ImageView) convertView.findViewById(R.id.img);
  name_tv = (TextView) convertView.findViewById(R.id.name_tv);
  deleteView = convertView.findViewById(R.id.delete_markView);

deleteView.setVisibility(isShowDelete?View.VISIBLE:View.GONE);//设置删除按钮是否显示
  img.setBackgroundResource(icons[position]);
  name_tv.setText(names[position]);
  return convertView;
 }
}

看到这里大家是否觉得很简单呢,接下来,我们就可以在长按方法里来设置isShowDelete的值了

@Override
 public boolean onItemLongClick(AdapterView<?> parent, View view,
   int position, long id) {
     if (isShowDelete) {
    isShowDelete = false;
   } else {
    isShowDelete = true;
  }
  mGridAdapter.setIsShowDelete(isShowDelete);
  return true;
 }

写到这里,希望能给大家带来一些帮助!!!!!!!! 

© 著作权归作者所有

归来熙
粉丝 6
博文 14
码字总数 1612
作品 0
昌平
技术主管
私信 提问
加载中

评论(15)

l
lotus9
感谢楼主13
水净纯
水净纯
谢谢,从你这篇文章中有受益!
上山若水1214
请问,我的第一个Item中的删除按钮获取不到焦点是什么原因?
归来熙
归来熙 博主

引用来自“lvdanzenghao”的评论

感谢楼主分享!可否将源码上传 本人新手!多指教
源码包:http://www.oschina.net/action/code/download?code=35495&id=51622
归来熙
归来熙 博主

引用来自“lvdanzenghao”的评论

感谢楼主分享!可否将源码上传 本人新手!多指教
源码包:http://www.oschina.net/action/code/download?code=35495&id=51622
归来熙
归来熙 博主

引用来自“yancai111”的评论

楼主能不能给个源码demo,谢谢啦 ,救急 yshq521@sina.com
源码包:http://www.oschina.net/action/code/download?code=35495&id=51622
归来熙
归来熙 博主

引用来自“yancai111”的评论

楼主能不能给个源码demo,谢谢啦 ,救急 yshq521@sina.com
源码包:http://www.oschina.net/action/code/download?code=35495&id=51622
归来熙
归来熙 博主

引用来自“yancai111”的评论

楼主能不能给个源码demo,谢谢啦 ,救急 yshq521@sina.com
源码包:http://www.oschina.net/action/code/download?code=35495&id=51622
归来熙
归来熙 博主

引用来自“zzj0908”的评论

顶,感谢楼主分享
源码包:http://www.oschina.net/action/code/download?code=35495&id=51622
归来熙
归来熙 博主

引用来自“lvdanzenghao”的评论

感谢楼主分享!可否将源码上传 本人新手!多指教
给我个邮箱我发给你吧
launcher修改--launcher架构解析

要想做好launcher,对其基本的架构了解是必须的,在这篇文章里,简单的介绍下launcher中类的构成和架构,首先,这篇文章中很多资源均从互联网中获得,感谢网友们的无私奉献,大家都共享,进步...

迷途d书童
2012/03/30
18.2K
4
Android布局

View的布局显示方式有下面几种:线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List Vi...

JavaGG
2011/06/29
16.9K
17
动态显示和隐藏状态栏(包括底部虚拟按键)

小米Launcher有一个细节上的功能效果:在长按桌面应用图标时,会隐藏状态栏,然后在状态栏原有的布局上显示卸载或删除的操作栏。放手后,操作栏隐藏,状态栏显示出来。也就是说,这个过程是涉...

不正经啊不正经
2015/07/29
4.9K
1
浅谈Android应用管理器(一)

我的毕设题目是:Android应用管理器的设计与实现,作为一个Java基础不好,刚学Android两个星期,而下周五就要开始编码的新手,我想先分析分析我在毕设中将要用到的知识点,这也是下周开会我需...

yuchu
2013/03/23
1K
0
Android 的几种布局方式及实践

我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了。在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题...

sumpower
2014/02/25
61
0

没有更多内容

加载失败,请刷新页面

加载更多

db.properties

jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=falsejdbc.username=rootjdbc.pas......

行者终成事
20分钟前
3
0
从 Storm 到 Flink,汽车之家基于 Flink 的实时 SQL 平台设计思路与实践

在 2019 年之前,之家的大部分实时业务都是运行在 Storm 之上的。Storm 作为早期主流的实时计算引擎,凭借简单的 Spout 和 Bolt 编程模型以及集群本身的稳定性,俘获了大批用户。下图是实时计...

阿里云官方博客
21分钟前
4
0
网络安全-Day04

2.1.1 什么是SQL注入 2.1.2 注入分类 2.1.3 MySQL手工注入 2.1.4 sqlmap使用 2.1.5 总结 什么是SQL注入 SQL注入漏洞原理 什么是SQL 结构化查询语言(Structured Query Language),是一种特殊目...

Jerry1101
21分钟前
3
0
docker容器内安装yum,vim等命令,以及配置ls指令

使用国内镜像 mv /etc/apt/sources.list /etc/apt/sources.list.bakecho "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.listecho "deb http://......

长恭
21分钟前
3
0
超详细的MySQL8.0.17版本安装教程

下载MySQL MySQL的官网地址:https://www.mysql.com/。 如下图所示: 然后点击DOWNLOADS ==> Community,选择MySQL Community Server。如图所示: 滑到页面的最下面,找到Recommended Downl...

彩色泡泡糖
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部