Android學習筆記之GridView(2)

這次有上次有一點是不同的:

每個圖片下面都有一個文本信息。

 

這次範例就是實現這個功能。再有一點就是前面的方法就是自己實現一個ImageAdapter繼承BaseAdapter,再供GridView使用

這次本文介紹的GridView用法跟前文ListView的極其類似,利用適配器SimpleAdapter來完成,我柑橘這樣挺簡單的。

[java] view plaincopy
  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 plaincopy
  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 plaincopy
  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>  


 

發佈了29 篇原創文章 · 獲贊 11 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章