GridView监听器

package com.example.wang.testapp2;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class TestActivity10 extends AppCompatActivity {

    GridView gv_1;

    List<Integer> liv;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test10);



        //1-数据
        liv=new ArrayList<>();
        liv.add(R.drawable.f1);
        liv.add(R.drawable.f2);
        liv.add(R.drawable.f3);
        liv.add(R.drawable.f4);
        liv.add(R.drawable.f5);
        liv.add(R.drawable.f6);
        liv.add(R.drawable.f7);
        liv.add(R.drawable.f8);

        final ImageAdapter im=new ImageAdapter();



        gv_1=(GridView)findViewById(R.id.gv_1);

        gv_1.setAdapter(im);

        gv_1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(TestActivity10.this, "被点击的图片索引" + position, Toast.LENGTH_SHORT).show();
            }
        });

        //长按删除的监听器
        gv_1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

                //1.实现删除数据
                //从集合里删除长按的那一条
                liv.remove(position);

                //2.刷新视图,看到效果
                //通知适配器,数据源改变了
                im.notifyDataSetChanged();
                Toast.makeText(TestActivity10.this, "删除了记录索引=" + position, Toast.LENGTH_SHORT).show();
                return true;//事件已经被消费,不要在处理了
            }
        });

    }
    //适配器

    class  ImageAdapter extends BaseAdapter
    {
        @Override
        public int getCount() {
            return liv.size();
        }

        @Override
        public Object getItem(int position) {
            return liv.get(position);
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

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

            //1-得到数据  图片的id
            Integer ivid=liv.get(position);

            //2-准备视图View
            if (convertView==null)
            {
                convertView = new ImageView(TestActivity10.this);
            }

            //3-适配
            //项目转换
           ImageView imageView=(ImageView)convertView;

            imageView.setImageResource(ivid);

//            imageView.setMaxWidth(70);
//            imageView.setMaxHeight(70);

            imageView.setLayoutParams(new GridView.LayoutParams(120,120));

            return imageView;
        }
    }
}
java
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.wang.testapp2.TestActivity10">
    <GridView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/gv_1"
        android:numColumns="4"
        android:stretchMode="columnWidth"
        android:gravity="center"
        android:horizontalSpacing="30dp"
        android:verticalSpacing="30dp"
        android:columnWidth="120dp"></GridView>

</LinearLayout>
xml

原文地址:https://www.cnblogs.com/wangchuanqi/p/5515086.html