有时我们需要一些图标+文字组合的按钮,但是如果用一些复杂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;
}