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

本文介绍了如何在Android应用中通过长按Gridview的项显示删除图标,点击后删除该项,再次长按则取消删除图标。关键在于Adapter的设置,通过一个布尔变量控制删除图标的可见性,并在长按监听事件中切换该变量的状态,从而实现功能。适配器代码展示了如何在getView方法中动态设置删除图标的显示。这是一个简单但实用的Android开发技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

7a8a0ed17475fd8bd4d3e1d7696570e0.png

gridview的布局文件如下:

android:id="@+id/ll_grid_item"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:orientation="vertical" >

android:id="@+id/starred_item_layout"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_gravity="center" >

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" >

android:id="@+id/img"

android:layout_width="60dip"

android:layout_height="55dip" />

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" />

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"

/>

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;

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值