文档章节

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

weicai
 weicai
发布于 2014/12/20 11:24
字数 420
阅读 59
收藏 0

xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >


    <GridView

        android:id="@+id/gridView"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:numColumns="4" >

    </GridView>


</RelativeLayout>


activity代码

package com.example.longdemo;


import android.os.Bundle;

import android.app.Activity;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemLongClickListener;

import android.widget.GridView;

/**

 * GridView长按改变布局,实现长按某一个,所有项都显示删除的图标 

 * @author weicai

 *

 */

public class MainActivity extends Activity implements OnItemLongClickListener {


private GridView mGridView;

private GridViewAdapter mAdapter;

private boolean isShowDelete = false;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mGridView = (GridView) findViewById(R.id.gridView);

mGridView.setOnItemLongClickListener(this);

mAdapter = new GridViewAdapter(MainActivity.this, new String[] { "你好",

"你好", "你好", "你好", "你好", "你好", "你好" }, new int[] {

R.drawable.avatar_fish, R.drawable.avatar_fish,

R.drawable.avatar_fish, R.drawable.avatar_fish,

R.drawable.avatar_fish, R.drawable.avatar_fish,

R.drawable.avatar_fish });

mGridView.setAdapter(mAdapter);

}


@Override

public boolean onItemLongClick(AdapterView<?> parent, View view,

int position, long id) {

if (isShowDelete) {

isShowDelete = false;

} else {

isShowDelete = true;

}

mAdapter.setIsShowDelete(isShowDelete);//调用适配器里的方法,并传入参数

return true;

}


}


gridview适配器代码:

package com.example.longdemo;


import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.TextView;


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 GridViewAdapter(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) {

return icons[position];

}


@Override

public long getItemId(int position) {

return position;

}


@Override

public View getView(int position, View convertView, ViewGroup parent) {

convertView = LayoutInflater.from(mContext).inflate(R.layout.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;

}

}


源码包:http://www.oschina.net/action/code/download?code=35495&id=51622

© 著作权归作者所有

weicai
粉丝 0
博文 1
码字总数 420
作品 0
广州
私信 提问
android gridview布局,实现长按某一个,所有项都显示删除的图标

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

归来熙
2013/09/08
8.4K
15
launcher修改--launcher架构解析

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

迷途d书童
2012/03/30
18.2K
4
goweii/SwipeDragTreeRecyclerView

SwipeDragTreeRecyclerView 使用说明 GitHub 主页 功能 树形结构 RecyclerView 支持滑动删除 支持长按拖拽 支持单个 view 点击或长按时拖拽 可开启并更改滑动删除背景色 可自由指定滑动删除和...

goweii
2017/12/25
0
0
androied 关于页面刷新问题

先上图 说明 在ListView中 适配了 GridView 让显示的数据即能上下滑动 又能左右滑动。我是在listView的适配器中 适配的GridView的数据。 问题 要求长按GridView中的某项删除,现在数组中的数...

Jason-Liu
2013/02/27
250
2
高仿小米launcher(ZAKER)跨屏拖动item(有源码)

触发长按事件后浮动原理: windowParams = new WindowManager.LayoutParams(); windowParams.gravity = Gravity.TOP | Gravity.LEFT; windowParams.x = x - itemWidth / 2; windowParams.y =......

76135
2012/07/16
6.8K
9

没有更多内容

加载失败,请刷新页面

加载更多

NASA的10条编码规则

关于NASA的10条编程规则,他们曾表示:这些规则的作用就像汽车上的安全带:最初,它们可能有点不舒服,但过了一会儿,它们的使用就变成了第二天性,而没有使用它们就变得不可想象。 Gerard J...

京东云技术新知
30分钟前
78
0
TortoiseSVN图标未显示在Windows 7下

我似乎无法在Windows 7下显示图标,我真的很想念Windows XP。 怎么修好? #1楼 他们在这里展示得很好 您使用的是64位版本的Windows 7以及32位版本的TortoiseSVN吗? 如果是这样,那么它们只会...

javail
54分钟前
94
0
开源播放器

DPlayer

glen_xu
今天
190
0
gitlab Error:Gitaly - load linguist colors - permission denied

报错信息 2020-01-20_14:35:08.43180 time=“2020-01-20T14:35:08Z” level=info msg=“Starting Gitaly” version=“Gitaly, version 0.81.0, built 20180225.183225” 2020-01-20_14:35:0......

JennerLuo
今天
129
0
微信小程序的自动化测试框架

微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点: 支持一套脚本,iOS & Android & 模拟器,三端运行 提供丰富的页面跳转方式,看不到也能去得到 可以获取和设置小...

测者陈磊
今天
88
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部