GridView是android的一个网格视图,例如:九宫格,它跟ListView有共同的父类AbsListView。
区别:ListView只显示单列,而GridView可以显示多列。
GridView和ListView一样 都需要Adapter(适配器)来提供显示的数据;
具体逻辑如下:
示例如下:
public class GSListGdViewAssist {
private ArrayList<String> strlist;
private ArrayList<Integer> idlist;
public void grid(GridView gridv,final Activity main,String goodscategory,final Class cls){
strlist=new ArrayList<String>();
idlist=new ArrayList<Integer>();
GoodsDao gddao =new GoodsDao(main);
List<Goods> gdsl=gddao.getScrollData(goodscategory, 0, 10);
for(Goods good : gdsl){
strlist.add(good.getGoodsname());
idlist.add(good.getGoodsid());
}
//数据源meumList
ArrayList<HashMap<String, Object>> meumList = new ArrayList<HashMap<String, Object>>();
for(int i = 0;i < strlist.size();i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.four_conew3);
map.put("ItemText", strlist.get(i).toString());
meumList.add(map);
}
//适配器SimpleAdapter saItem
SimpleAdapter saItem = new SimpleAdapter(main,
meumList, //数据源
R.layout.item, //xml实现
new String[]{"ItemImage","ItemText"}, //对应map的Key
new int[]{R.id.ItemImage,R.id.ItemText}); //对应R的Id
//添加Item到网格中 通过适配器在GridView中显示数据 .
gridv.setAdapter(saItem);
//添加点击事件
gridv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
}
});
}
}