android gridview布局,实现长按某一个,所有项都显示删除的图标
2016-04-29 21:34
756 查看
最近一直忙着项目开发,有段时间没有写博文了,今天想跟大家分享的是长按gridview中的某一项显示删除图标,此时点击某项便可删除,再长按取消删除图标。
gridview的布局文件如下:
gridview的adapter如下:
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; }
相关文章推荐
- android之权限
- Android SQLite数据库解析并使用两种方法实现增删改查
- Visual Studio Xamarin编译Android项目出错的解决办法
- Android smali 语法三
- Android小菜鸟向大神进攻的奋斗记(一)之Android最全的源码下载
- Android 监听短信内容变化,并发送到自己的手机
- Android学习之AndroidManifest.xml清单之<uses-feature>
- 使用Volley 发送 ProtoBuf数据
- Android学习记录(八) alertDialog和popupwindow简单实现
- 十、命令设计模式
- Android 沉浸式状态栏 实现方式二 ( 更简单 )
- Android的Depth-LIB-Android的使用
- Android录制声音文件(音频),并播放
- android Criteria
- Android一句话 | ViewGroup事件分发
- Android一句话 | View事件分发
- 对 Android 开发者有益的 40 条优化建议
- Android手机震动
- 学习笔记(九)内容提供器
- Android提升篇系列:adb无法识别MX5等特殊机型