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



GridView监听器的更多相关文章
- Android成长日记-使用GridView显示多行数据
本节将实现以下效果 Ps:看起来很不错的样子吧,而且很像九宫格/se ----------------------------------------------------------------- ...
- Android之GridView控制显示多少行以及遇到的怪事
前段时间接到一个需求,要求GridView超过两行只显示两行多余的不显示.但是GridView没有设置多少行的api,只有设置多少列的方法,到处查找资料都类似的case,stakeoverfrow上面 ...
- Android 自学之网格试图(GridView)和图片切换器(ImageSwitcher)功能和用法
网格试图(GridView)用于在界面上按行,列分布的方式来显示多个组件. GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有一定的相似 ...
- Xamarin 实现android gridview 多选
参考文章:http://blog.csdn.net/zhouyuanjing/article/details/8372686 GridView初始化代码: gridViewStudent = Find ...
- 异步加载图片到GridView上,防止OOM
图片资源: private int fore[]; private int back[]; fore = new int[]{R.drawable.a0, R.drawable.a1, R.drawa ...
- Android常用控件之GridView使用BaseAdapter
我们可以为GridView添加自定义的Adapter,首先看下用自定义Adapter的显示效果 在布局文件main.xml文件中定义一个GridView控件 <RelativeLayout xm ...
- Android GridView 二维布局界面
GridView用于在界面上按行.列分布的方式来显示多个组件. <LinearLayout xmlns:android="http://schemas.android.com/apk/ ...
- Android学习笔记27:网格视图GridView的使用
网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现. 本文将以一个具体的实例来说明如何使用GridV ...
- Android开发10.3:UI组件GridView网格视图
GridView(网格视图) 概述 GridView用于在界面上按行.列分布的方式来显示多个组件 GridView和ListView有共同的父类 : AbsListView ...
随机推荐
- Integer.parseInt不同jdk源码解析
执行以下代码: System.out.println(Integer.parseInt("-123")); System.out.println(Integer.parseInt( ...
- jquery.lazyload插件实现图片延迟加载详解
什么是LazyLoad技术? 在页面上图片比较多的时候,打开一张页面必然引起与服务器大数据量的交互.尤其是对于高清晰的图片,占了几百K的空间.Lazy Load 是一个用 JavaScript 编写的 ...
- IOS方形头像如何变成圆形
方法一:直接使用UIView对应图层的cornerRadius self.layer.cornerRadius = CGRectGetWidth(self.bounds)/2.f; self. ...
- 数据分析与展示---Matplotlib基本绘图函数
一:基本绘图函数(这里介绍16个,还有许多其他的) 二:pyplot饼图plt.pie的绘制 三:pyplot直方图plt.hist的绘制 (一)修改第二个参数bins:代表直方图的个数,均分为多段, ...
- vue 脚手架使用
1. npm指令 vue init 模板类型 项目名称 如: vue init webpack-simple mydemo 2.进入刚才生产的 文件夹 mydemo cd mydemo 3.初始化 ...
- 生成电脑的ssh key值
通过命令 ssh-keygen -t rsa -C "你的邮箱" 然后在用户目录下找到.ssh文件夹,这个是隐藏的,然后打开id_rsa.pub文件,里面的内容就是需要的ssh k ...
- java8 write file 写文件
1.用BufferedWriter写入文件 //Get the file reference Path path = Paths.get("c:/output.txt"); //U ...
- 从零搭建SSM框架(一)搭建工程
工程结构 一.cnki-parent 1.新建maven project 2.pom.xml <project xmlns="http://maven.apache.org/POM/ ...
- Linux学习4-信号
信号 信号是Unix和Linux系统响应某些条件而产生的一个条件.接收到该信号的进程会相应的采取一些行动. 信号是由于某些错误条件而生成的,如内存冲突,浮点处理器错误或非法指令等.它们由shell ...
- 20155217 2016-2017-2 《Java程序设计》第8周学习总结
20155217 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 15.1日志 15.1.1日志API简介 java.util.logging包提供了日志功能 ...