GridView使用示例(二)
发布日期:2021-06-30 11:23:13
浏览次数:2
分类:技术文章
本文共 4804 字,大约阅读时间需要 16 分钟。
mainActivity如下:
package cn.c;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.GridView;import android.widget.ImageView;/** * 需求描述: * 自定义GridView的Adapter展示图片 * * 注意:去掉GridView点击时的背景色 * android:listSelector="@android:color/transparent" */public class MainActivity extends Activity { private GridView mGridView; private ArrayListGridViewAdapter如下:mArrayList; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mGridView=(GridView) findViewById(R.id.gridView); mArrayList=new ArrayList (); for (int i = 0; i < 10; i++) { RowImages images=new RowImages(R.drawable.a, R.drawable.b, R.drawable.a); mArrayList.add(images); } GridViewAdapter adapter=new GridViewAdapter(MainActivity.this, mArrayList); mGridView.setAdapter(adapter); mGridView.setOnItemClickListener(new ItemClickListenerImpl()); } private class ItemClickListenerImpl implements OnItemClickListener{ public void onItemClick(AdapterView parent, View view, int position,long id) { System.out.println("点击了第"+(position+1)+"行"); ImageView imageView_left=(ImageView) view.findViewById(R.id.imageView_left); imageView_left.setOnClickListener(new OnClickListener() { public void onClick(View v) { System.out.println("xxxxxx 点击了左边的图片"); } }); ImageView imageView_center=(ImageView) view.findViewById(R.id.imageView_center); imageView_center.setOnClickListener(new OnClickListener() { public void onClick(View v) { System.out.println("xxxxxx 点击了中间的图片"); } }); ImageView imageView_right=(ImageView) view.findViewById(R.id.imageView_right); imageView_right.setOnClickListener(new OnClickListener() { public void onClick(View v) { System.out.println("xxxxxx 点击了右边的图片"); } }); } }}
package cn.c;import java.util.ArrayList;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;public class GridViewAdapter extends BaseAdapter{ private Context mContext; private ArrayListmArrayList; public GridViewAdapter(Context context,ArrayList arrayList){ this.mContext=context; this.mArrayList=arrayList; } public int getCount() { if (mArrayList==null) { return 0; } else { return mArrayList.size(); } } public Object getItem(int position) { if (mArrayList==null) { return null; } else { return mArrayList.get(position); } } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder=null; if (convertView==null) { holder=new ViewHolder(); convertView=LayoutInflater.from(mContext) .inflate(R.layout.gridview_row_layout, null,false); holder.imageView_left= (ImageView) convertView.findViewById(R.id.imageView_left); holder.imageView_center= (ImageView) convertView.findViewById(R.id.imageView_center); holder.imageView_right= (ImageView) convertView.findViewById(R.id.imageView_right); convertView.setTag(holder); } else { holder=(ViewHolder) convertView.getTag(); } if (mArrayList!=null) { RowImages images=this.mArrayList.get(position); if (holder.imageView_left!=null) { holder.imageView_left.setImageResource(images.getImg_left()); } if (holder.imageView_center!=null) { holder.imageView_center.setImageResource(images.getImg_center()); } if (holder.imageView_right!=null) { holder.imageView_right.setImageResource(images.getImg_right()); } } return convertView; } private class ViewHolder{ ImageView imageView_left; ImageView imageView_center; ImageView imageView_right; }}
RowImages如下:
package cn.c;public class RowImages { private int img_left; private int img_center; private int img_right; public RowImages() { super(); } public RowImages(int img_left, int img_center, int img_right) { super(); this.img_left = img_left; this.img_center = img_center; this.img_right = img_right; } public int getImg_left() { return img_left; } public void setImg_left(int img_left) { this.img_left = img_left; } public int getImg_center() { return img_center; } public void setImg_center(int img_center) { this.img_center = img_center; } public int getImg_right() { return img_right; } public void setImg_right(int img_right) { this.img_right = img_right; } }
main.xml如下:
gridview_row_layout.xml如下:
转载地址:https://it9527.blog.csdn.net/article/details/8956172 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月15日 09时57分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
xfce4
2019-04-30
xrdp
2019-04-30
Raft算法
2019-04-30
Python计算文本BLEU分数
2019-04-30
swap内存(linux)
2019-04-30
人脸au
2019-04-30
torch.distributed 分布式
2019-04-30
OpenMP编程模型(OMP)
2019-04-30
混合精度训练(FP16 & FP32)
2019-04-30
PyPy
2019-04-30
打印CSDN文章
2019-04-30
MATLAB与CUDA
2019-04-30
Linux png转jpg (convert命令)
2019-04-30
NAS (Network Attached Storage 网络附属存储)
2019-04-30
Ubuntu更新后终端中字体的颜色全是白色
2019-04-30
Ninja
2019-04-30
lmdb数据库的读取与转换(一) —— 基本操作
2019-04-30
opencv相关操作(cv2) (python)
2019-04-30
lmdb数据库的读取与转换(二) —— 数据集操作
2019-04-30
Lua语言
2019-04-30