Android学习笔记之GridView(2)

这次有上次有一点是不同的:

每个图片下面都有一个文本信息。

 

这次范例就是实现这个功能。再有一点就是前面的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用

这次本文介绍的GridView用法跟前文ListView的极其类似,利用适配器SimpleAdapter来完成,我柑橘这样挺简单的。

[java]  view plain copy
  1. package xiaosi.gridview;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5.   
  6. import android.app.Activity;  
  7. import android.os.Bundle;  
  8. import android.view.View;  
  9. import android.widget.AdapterView;  
  10. import android.widget.AdapterView.OnItemClickListener;  
  11. import android.widget.GridView;  
  12. import android.widget.SimpleAdapter;  
  13.   
  14. public class GridViewActivity extends Activity {  
  15.     /** Called when the activity is first created. */  
  16.     private GridView gridview = null;  
  17.     @Override  
  18.     public void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.main);  
  21.         GridView gridview = (GridView) findViewById(R.id.gridview);  
  22.           
  23.         //生成数据源 一个List  
  24.         ArrayList<HashMap<String, Object>> DateList = new ArrayList<HashMap<String, Object>>();  
  25.         for(int i=0;i<15;i++)  
  26.         {  
  27.             //医用HashMap来存储  
  28.             HashMap<String, Object> hashMap = new HashMap<String, Object>();  
  29.             //添加图像资源的ID  
  30.             hashMap.put("Image", R.drawable.a);  
  31.             //按序号做ItemText  
  32.             hashMap.put("Text""NO."+String.valueOf(i));  
  33.             //添加到List去  
  34.             DateList.add(hashMap);  
  35.         }  
  36.         //生成适配器的simpleAdapter   
  37.         //DateList 数据源  
  38.         //R.layout.item 来自于item。xml 控制GridView中每一项的布局(一个ImageView 一个TextView)  
  39.         //第三个参数是hashoMap的键值  
  40.         //第四个参数是item。xml中ImageView,TextView的ID  
  41.         SimpleAdapter simpleAdapter = new SimpleAdapter(this,DateList,R.layout.item,  
  42.                 new String[] {"Image","Text"}, new int[] {R.id.ItemImage,R.id.ItemText});  
  43.         //添加并且显示  
  44.         gridview.setAdapter(simpleAdapter);  
  45.         //添加消息处理  
  46.         gridview.setOnItemClickListener(new ItemClickListener());    
  47.     }  
  48.       
  49.       
  50.     private class  ItemClickListener implements OnItemClickListener  
  51.     {  
  52.         public void onItemClick(AdapterView<?> arg0,View arg1, int arg2,long arg3) {  
  53.               
  54.             //arg0就是那个DateList  
  55.             HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);  
  56.             //显示应用标题的那个TextView  
  57.             setTitle((String)item.get("Text"));  
  58.         }  
  59.           
  60.     }  
  61. }  


 

main.xml

[java]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <GridView xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/gridview"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:verticalSpacing="5dip"  
  7.     android:horizontalSpacing="5dip"  
  8.     android:columnWidth="80dip"  
  9.     android:numColumns="auto_fit"  
  10.     android:stretchMode="columnWidth"  
  11.     android:gravity="center"  
  12.     />  


创建item.xml 

[java]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout   
  3.          xmlns:android="http://schemas.android.com/apk/res/android"   
  4.          android:layout_height="wrap_content"   
  5.          android:paddingBottom="4dip" android:layout_width="fill_parent">  
  6.          <ImageView   
  7.                android:layout_height="wrap_content"   
  8.                android:id="@+id/ItemImage"   
  9.                android:layout_width="wrap_content"   
  10.                android:layout_centerHorizontal="true">   
  11.          </ImageView>  
  12.          <TextView   
  13.                android:layout_width="wrap_content"   
  14.                android:layout_below="@+id/ItemImage"   
  15.                android:layout_height="wrap_content"   
  16.                android:text="TextView01"   
  17.                android:layout_centerHorizontal="true"   
  18.                android:id="@+id/ItemText">  
  19.          </TextView>  
  20. </RelativeLayout>  


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值