GridView视图(BaseAdapter)

来源:互联网 发布:网络用语fu是什么意思 编辑:程序博客网 时间:2024/06/06 03:03
果图:

1.src文件夹下 ShowActivity.java文件内容:

[java] view plain copy print?
  1. package com.jun.activity;  
  2.   
  3.   
  4. import java.util.ArrayList;  
  5. import java.util.HashMap;  
  6. import java.util.List;  
  7.   
  8. import com.jun.adapter.MyAdapter;  
  9.   
  10. import android.os.Bundle;  
  11. import android.app.Activity;  
  12. import android.view.Menu;  
  13. import android.widget.GridView;  
  14. import android.widget.SimpleAdapter;  
  15.   
  16. public class ShowActivity extends Activity {  
  17.     private GridView gridView=null;  
  18.     private MyAdapter adapter=null;  
  19.     private SimpleAdapter adapter1=null;  
  20.     private List<HashMap<String,Object>> list=null;  
  21.     private HashMap<String,Object> map=null;  
  22.     private String data[]={"图片1","图片2","图片3","图片4","图片5","图6","图片7","图片8","图片9",  
  23.             "图片10","图片11","图片12","图片13","图片14","图片15","图片16"};  
  24.     private int   imgId[]={R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,  
  25.             R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,  
  26.             R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a,R.drawable.a};  
  27.     @Override  
  28.     public void onCreate(Bundle savedInstanceState) {  
  29.         super.onCreate(savedInstanceState);  
  30.         setContentView(R.layout.activity_show);  
  31.         init();  
  32.         setData();  
  33.     }  
  34. private void init(){  
  35.       
  36.     gridView=(GridView) findViewById(R.id.grid_view);  
  37.     list=new ArrayList<HashMap<String,Object>>();  
  38. }  
  39. private void setData(){  
  40. //    使用BaseAdapter添加数据  
  41.     adapter=new MyAdapter(ShowActivity.this, data, imgId);  
  42.       
  43.     gridView.setAdapter(adapter);  
  44.       
  45.       
  46.       
  47. //    使用SimpeAdapter添加数据  
  48. //    for(int i=0;i<data.length;i++){  
  49. //          
  50. //        map=new HashMap<String, Object>();  
  51. //          
  52. //        map.put("text", data[i]);  
  53. //        map.put("img", imgId[i]);  
  54. //        list.add(map);  
  55. //          
  56. //    }   
  57. //    adapter1=new SimpleAdapter(ShowActivity.this, list, R.layout.gridview_item, new String[]{"text","img"}, new int[]{R.id.gridview_text,R.id.gridview_img});  
  58. //    gridView.setAdapter(adapter1);  
  59. }  
  60.     @Override  
  61.     public boolean onCreateOptionsMenu(Menu menu) {  
  62.         getMenuInflater().inflate(R.menu.activity_show, menu);  
  63.         return true;  
  64.     }  
  65. }  



2.ShowActivity布局文件activity_show.xml文件内容:

[html] view plain copy print?
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:background="@drawable/activity_background" >  
  6.   
  7.     <TextView  
  8.         android:id="@+id/title_bar_text"  
  9.         android:layout_width="match_parent"  
  10.         android:layout_height="45dip"  
  11.         android:layout_alignParentTop="true"  
  12.         android:gravity="center_vertical|center_horizontal"  
  13.         android:background="@drawable/theme_title_red"  
  14.         android:text="@string/test"  
  15.         android:textSize="20dip"  
  16.         android:textColor="#fff"  
  17.         tools:context=".ShowActivity" />  
  18.     <GridView  
  19.         android:id="@+id/grid_view"  
  20.         android:layout_width="fill_parent"  
  21.         android:layout_height="wrap_content"  
  22.         android:layout_below="@+id/title_bar_text"  
  23.         android:layout_marginLeft="1dip"  
  24.         android:layout_marginRight="1dip"  
  25.         android:numColumns="2"  
  26.        android:columnWidth="5dip"  
  27.         android:cacheColorHint="#00000000"  
  28.         ></GridView>  
  29.           
  30.   
  31. </RelativeLayout>  



3.继承自BaseAdapter适配器类MyAdapter.java文件内容:

[java] view plain copy print?
  1. package com.jun.adapter;  
  2.   
  3. import com.jun.activity.R;  
  4.   
  5. import android.content.Context;  
  6. import android.view.LayoutInflater;  
  7. import android.view.View;  
  8. import android.view.ViewGroup;  
  9. import android.widget.BaseAdapter;  
  10. import android.widget.ImageView;  
  11. import android.widget.TextView;  
  12.   
  13. public class MyAdapter extends BaseAdapter {  
  14.   
  15.     private String data[]=null;  
  16.     private int imgId[]=null;  
  17.     private Context context=null;  
  18.     private LayoutInflater inflater=null;  
  19.     public MyAdapter(Context context,String[] data, int[] imgId) {  
  20.         super();  
  21.         this.data = data;  
  22.         this.imgId = imgId;  
  23.         this.context = context;  
  24.           
  25.         inflater=LayoutInflater.from(context);  
  26.     }  
  27.   
  28.     @Override  
  29.     public int getCount() {  
  30.         // TODO Auto-generated method stub  
  31.         return data.length;  
  32.     }  
  33.   
  34.     @Override  
  35.     public Object getItem(int position) {  
  36.         // TODO Auto-generated method stub  
  37.         return position;  
  38.     }  
  39.   
  40.     @Override  
  41.     public long getItemId(int position) {  
  42.         // TODO Auto-generated method stub  
  43.         return position;  
  44.     }  
  45.     private class Holder{  
  46.           
  47.         TextView tv=null;  
  48.         ImageView img=null;  
  49.         public TextView getTv() {  
  50.             return tv;  
  51.         }  
  52.         public void setTv(TextView tv) {  
  53.             this.tv = tv;  
  54.         }  
  55.         public ImageView getImg() {  
  56.             return img;  
  57.         }  
  58.         public void setImg(ImageView img) {  
  59.             this.img = img;  
  60.         }  
  61.           
  62.     }  
  63.     @Override  
  64.     public View getView(int position, View convertView, ViewGroup parent) {  
  65.         // TODO Auto-generated method stub  
  66. //        获得holder以及holder对象中tv和img对象的实例  
  67.         Holder holder;  
  68.         if(convertView==null){  
  69.               
  70.               
  71.             convertView=inflater.inflate(R.layout.gridview_item, null);  
  72.             holder=new Holder();  
  73.             holder.tv=(TextView) convertView.findViewById(R.id.gridview_text);  
  74.             holder.img=(ImageView) convertView.findViewById(R.id.gridview_img);  
  75.               
  76.             convertView.setTag(holder);  
  77.               
  78.         }else{  
  79.             holder=(Holder) convertView.getTag();  
  80.               
  81.         }  
  82. //        为holder中的tv和img设置内容  
  83.         holder.tv.setText(data[position]);  
  84.         holder.img.setImageResource(imgId[position]);  
  85. //        注意  默认为返回null,必须得返回convertView视图  
  86.         return convertView;  
  87.     }  
  88.   
  89. }  


4.GridView组件上面的布局:   gridview_item.xml文件内容:

[html] view plain copy print?
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:background="@drawable/activity_background" >  
  6. <ImageView  
  7.             android:id="@+id/gridview_img"  
  8.             android:layout_width="120dip"  
  9.             android:layout_height="120dip"  
  10.             android:layout_margin="10dip"  
  11.             android:background="@drawable/four_bg"  
  12.             android:src="@drawable/a" />  
  13.     <TextView  
  14.         android:id="@+id/gridview_text"  
  15.         android:layout_width="match_parent"  
  16.         android:layout_height="wrap_content"  
  17.         android:layout_below="@+id/gridview_img"  
  18.         android:gravity="center_vertical|center_horizontal"  
  19.         android:textColor="#000"  
  20.         android:textSize="14dip"  
  21.         tools:context=".ShowActivity" />  
  22.   
  23. </RelativeLayout>  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 二建证书挂靠公司不给钱怎么办 二建拿到证书原单位不解锁怎么办 凯云软件清单锁定只读了怎么办 苹果笔记本鼠标触摸板没反应怎么办 苹果笔记本键盘和触摸板失灵怎么办 苹果手机输入密码显示已停用怎么办 苹果7p手机刷机黑屏了怎么办 苹果5s来电接听屏幕卡顿怎么办? 手机摔了一下触屏失灵怎么办 小米手机摔了一下触屏失灵怎么办 苹果6sp触摸ic坏了怎么办 苹果4s屏幕摔裂了怎么办 新换的手机内屏颜色太亮怎么办 苹果手机摔了一下屏幕失灵怎么办 苹果手机6s屏幕坏了怎么办 苹果6s屏幕摔坏了怎么办 苹果手机屏幕进油了屏幕变暗怎么办 苹果手机不小心屏幕进油了怎么办 苹果6充电插口螺丝口坏了怎么办 苹果5s手机安装屏幕翘边怎么办 苹果手机摔了一下触摸屏失灵怎么办 苹果手机摔了下触摸屏失灵怎么办 苹果6老是屏幕失灵或者闪屏怎么办 华为荣耀8手触摸屏乱跳失灵怎么办 苹果5s屏幕有半边竖纹怎么办 苹果5s电源键坏了怎么办 苹果6s手机触屏失灵怎么办 不能取电池的手机触屏不灵怎么办? 7p主板触摸ic坏了怎么办 小米六手机摔了一下屏幕失灵怎么办 魅蓝5s触屏失灵怎么办 苹果手机键盘字母顺序乱了怎么办 红米手机进水后屏幕失灵怎么办 苹果7plus主屏按键坏了怎么办 苹果六手机上的红色变成粉色怎么办 苹果手机出现闪屏和手感不灵怎么办 荣耀6plus后开不了机怎么办 苹果手机touch id密码忘了怎么办 苹果7摔出了一个裂缝怎么办 屏幕摔坏了下键盘失灵怎么办 苹果4s手机按健失灵怎么办