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

xml文件android

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

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

    android:layout_width="match_parent"布局

    android:layout_height="match_parent" >this


    <GridViewspa

        android:id="@+id/gridView".net

        android:layout_width="match_parent"code

        android:layout_height="wrap_content"xml

        android:numColumns="4" >get

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

相关文章
相关标签/搜索