GridView的簡單使用

package com.example.exercise;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class GridViewActivity extends Activity {
	
	GridView gridView;
	private List<Map<String,Object>> dataList;
	private int[] icon = {R.drawable.ic_launcher,R.drawable.ic_launcher,
			R.drawable.ic_launcher,R.drawable.ic_launcher,
			R.drawable.ic_launcher,R.drawable.ic_launcher,
			R.drawable.ic_launcher,R.drawable.ic_launcher,
			R.drawable.ic_launcher,R.drawable.ic_launcher,
			R.drawable.ic_launcher,R.drawable.ic_launcher};
	
	private String[] iconName = {"通訊錄","日曆","照相機","時鐘","遊戲","短信","鈴聲","設置","語音","天氣","瀏覽器","視頻"};
	private SimpleAdapter adapter;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.grid_view);
		gridView = (GridView) findViewById(R.id.my_gridview);
		dataList = new ArrayList<Map<String,Object>>();		
		
		
		
		//新建適配器
		adapter = new SimpleAdapter(this, getData(), R.layout.gridview_item, 
				new String[]{"icon","lable"}, new int[]{R.id.icon,R.id.lable});
		
		//GridView加載適配器
		gridView.setAdapter(adapter);
		
		//給GridView設置監聽事件
		gridView.setOnItemClickListener(clickListener);
	}
	
	
	private List<Map<String,Object>> getData() {
		// TODO Auto-generated method stub
		for(int i = 0;i < icon.length;i ++){
			Map<String,Object> map = new HashMap<String, Object>();
			map.put("icon", icon[i]);
			map.put("lable", iconName[i]);
			dataList.add(map);
		}
		return dataList;
	}
	
	OnItemClickListener clickListener = new OnItemClickListener() {

		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
			// TODO Auto-generated method stub
			Toast.makeText(GridViewActivity.this, "我是" + iconName[position], Toast.LENGTH_SHORT).show();			
		}
	};
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <!-- 
    	android:numColumns="auto_fit"  列數,此值爲自適應
	    android:horizontalSpacing="5dp"  列間距
	    android:verticalSpacing="10dp"  行間距
     -->
	<GridView 
	    android:id="@+id/my_gridview"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:numColumns="4"
	    android:horizontalSpacing="5dp"
	    android:verticalSpacing="10dp"
	    ></GridView>
</LinearLayout>

GridView子項的佈局:
<pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#000000" 
    android:gravity="center">
    
	<ImageView 
	    android:id="@+id/icon"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:src="@drawable/ic_launcher"
	    />
	
	<TextView 
	    android:id="@+id/lable"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:textColor="#ffffff"
	    android:layout_marginTop="5dp"
	    android:text="楊平"
	    />
</LinearLayout>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章