// Map<String, ?>> data, int resource, String[] from, int[] to)
// 参数
// context 关联SimpleAdapter运行着的视图的上下文。
// data 一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目
// resource 一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。
// from 一个将被添加到Map上关联每一个项目的列名称的列表
// to 应该在参数from显示列的视图
xml代码:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<GridView
android:id="@+id/mygridview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:numColumns="4"
android:stretchMode="columnWidth" />
</LinearLayout>
显示图片和文本布局---grid_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:paddingBottom="6dip" >
<ImageView
android:id="@+id/image_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/text_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/image_item"
android:layout_centerHorizontal="true" />
</RelativeLayout>
java代码:
package com.example.gridviewd;
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.widget.GridView;
import android.widget.SimpleAdapter;
/**
* 显示图片,且在图片的下方显示图名 可将图片和文本放入一个布局中,而该布局只是GridView的一项而已,见grid_item.xml
*
* @author hunter
*
*/
public class MainActivity extends Activity {
private GridView gv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 准备要添加的数据条目,固定假如9条
List<Map<String, Object>> items = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 9; i++) {
Map<String, Object> item = new HashMap<String, Object>();
// 添加图像资源的ID
item.put("imageItem", R.drawable.ic_launcher);
// 按序号添加ItemText
item.put("textItem", "icon" + i);
items.add(item);
}
// 构造函数 public SimpleAdapter (Context context, List<? extends
// Map<String, ?>> data, int resource, String[] from, int[] to)
// 参数
// context 关联SimpleAdapter运行着的视图的上下文。
// data 一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所有在from中指定的条目
// resource 一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应包含哪些在to中定义了的名称。
// from 一个将被添加到Map上关联每一个项目的列名称的列表
// to 应该在参数from显示列的视图
// 实例化一个适配器
SimpleAdapter adapter = new SimpleAdapter(this, items,
R.layout.grid_item, new String[] { "imageItem", "textItem" },
new int[] { R.id.image_item, R.id.text_item });
// 获得GridView实例
gv = (GridView) findViewById(R.id.mygridview);
// 为GridView设置适配器
gv.setAdapter(adapter);
}
}