最简单采用simpleAdapter的gridview实现


有时我们需要一些图标+文字组合的按钮,但是如果用一些复杂adapter又显得过于臃肿,那么simpleAdapter是一个很好的选择 首先声明一个simpleAdapter,然后准备一些数据和layout。
simpleAdapter = new SimpleAdapter(this, data_list, layout布局, from, to);
from是指传入数据data_list中的键值对名称,to是指数据传入adapter中时layout布局中对应的ID
String[] from = {"image", "text"};
int[] to = {R.id.image, R.id.text};
例如键值对命名为image和text,展示数据的layout中分别为R.id.image,R.id.text 然后如果***需要的话,可以对adapter进行简单绑定,然后使用bitmap来装载图片,不然simpleadapter默认只支持传入本地图片,例如R.id.photo的格式 数据类型是List<Integer>
simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() {
 @Override
 public boolean setViewValue(View view, Object data,String textRepresentation) {
   if (view instanceof ImageView && data instanceof Bitmap) {
        ImageView i = (ImageView) view;
        i.setImageBitmap((Bitmap) data);
        return true;
       }
        return false;
       }
       }
        );
最后关于data_list是怎么来的,贴一个方法,首先我们需要定义一个icon列和一个iconName列,然后通过调用getData方法来刷新data_list中的数据,因此在每次调用adapter时都需要刷新数据
private List<Map<String, Object>> getData() {
        data_list.removeAll(data_list);
        //cion和iconName的长度是相同的,这里任选其一都可以
        for (int i = 0; i < icon.size(); i++) {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("image", icon.get(i));
            map.put("text", iconName.get(i));
            data_list.add(map);
        }
        return data_list;
    }