参考代码:http://blog.youkuaiyun.com/hellogv/article/details/4567095
package com.main;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
public class GridViewTestActivity extends Activity {
private GridView gv;
private ImageView iv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv = (ImageView)findViewById(R.id.imageView);
gv = (GridView) findViewById(R.id.gridView);
Integer itemImage[] = {
R.drawable.menu01_lanya,
R.drawable.menu02_wifi,
R.drawable.menu03_recorder,
R.drawable.menu04_alarm,
R.drawable.menu05_music,
R.drawable.menu06_file,
R.drawable.menu07_calculator,
R.drawable.menu08_photo,
R.drawable.menu09_background
};
String itemText[] = {
"蓝牙",
"WIFI",
"录音",
"闹钟",
"音乐",
"文件管理",
"计算器",
"图片",
"桌面背景"
};
SimpleAdapter sa = this.createSimpleAdapter(itemImage, itemText);
gv.setAdapter(sa);
gv.setOnItemClickListener(new MyOnClicListener());
}
public SimpleAdapter createSimpleAdapter(Integer itemImage[],String itemText[]){
SimpleAdapter sa = null;
ArrayList<HashMap<String, Object>> arraylist = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<itemImage.length;i++){
HashMap<String, Object> hm = new HashMap<String, Object>();
hm.put("ItemImage",itemImage[i]);
hm.put("ItemText", itemText[i]);
arraylist.add(hm);
}
sa = new SimpleAdapter(this, // 没什么解释
arraylist,// 数据来源
R.layout.night_item,// night_item的XML实现
// 动态数组与ImageItem对应的子项
new String[] { "ItemImage", "ItemText" },
// ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] { R.id.ItemImage, R.id.ItemText });
return sa;
}
public class MyOnClicListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0,// The AdapterView where the
// click happened
View arg1,// The view within the AdapterView that was clicked
int arg2,// The position of the view in the adapter
long arg3// The row id of the item that was clicked
) {
System.out.println("你点击了" + (arg2 + 1));
HashMap<String,Object> hm = (HashMap<String,Object>)arg0.getItemAtPosition(arg2);
String text = (String)hm.get("ItemText");
Integer imageID = (Integer)hm.get("ItemImage");
System.out.println("text="+text);
iv.setBackgroundDrawable(GridViewTestActivity.this.getResources().getDrawable(imageID));
}
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg03"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="100px"
android:layout_alignParentBottom="true"
android:width="240px"
android:background="@drawable/img2"/>
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="40px"
android:gravity="center"
android:horizontalSpacing="10px"
android:numColumns="3"
android:padding="10px"
android:stretchMode="columnWidth"
android:verticalSpacing="10px" >
</GridView>
</LinearLayout>
night_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="4dip" >
<ImageView
android:id="@+id/ItemImage"
android:layout_width="50px"
android:layout_height="50px"
android:layout_centerHorizontal="true" >
</ImageView>
<TextView
android:id="@+id/ItemText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ItemImage"
android:layout_centerHorizontal="true"
android:text="TextView01" >
</TextView>
</RelativeLayout>