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

相關文章
相關標籤/搜索