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 ArrayList
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 点击了右边的图片"); } }); } }}

GridViewAdapter如下:

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 ArrayList
mArrayList; 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:GridView使用示例(一)
下一篇:GridView使用示例(三)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月15日 09时57分06秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章