Android ArrayListAdapter<T>泛型类

来源:互联网 发布:软件代工 电影 编辑:程序博客网 时间:2024/05/29 19:45
/** * ArrayList Adapter泛型类 * Created by lezg on 2014/8/14. */public abstract class ArrayListAdapter<T> extends BaseAdapter {    protected ArrayList<T> listItems;    protected Context mContext;    public ArrayListAdapter(Context context,ArrayList<T> datas) {        this.mContext = context;        this.listItems = datas;    }    @Override    public int getCount() {        if (listItems != null) {            return listItems.size();        } else {            return 0;        }    }    @Override    public Object getItem(int position) {        return listItems == null ? null : listItems.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public abstract View getView(int position, View convertView, ViewGroup viewGroup);    public void setData(ArrayList<T> datas) {        this.listItems = datas;        notifyDataSetChanged();    }}



/** * 附近Poi Adapter类 * Created by lezg on 2014/8/14. */public class ListViewPoiAdapter extends ArrayListAdapter<MKPoiInfo> {    private AppContext appContext;    static class ListItemView {        public TextView name;        public TextView address;        public TextView distance;    }    public ListViewPoiAdapter(Context context, ArrayList<MKPoiInfo> datas) {        super(context, datas);        this.appContext = AppContext.getInstance();    }    @Override    public View getView(int position, View convertView, ViewGroup viewGroup) {        ListItemView listItemView;        if (convertView == null) {            convertView = LayoutInflater.from(mContext).inflate(R.layout.pois_info, null);            listItemView = new ListItemView();            listItemView.name = (TextView) convertView.findViewById(R.id.name);            listItemView.address = (TextView) convertView.findViewById(R.id.addr);            listItemView.distance = (TextView) convertView.findViewById(R.id.distance);            convertView.setTag(listItemView);//设置控件集到convertView        } else {            listItemView = (ListItemView) convertView.getTag();        }        MKPoiInfo info = listItems.get(position);        listItemView.name.setText(StringUtils.numberToString(position) + info.name);        listItemView.address.setText("地址:" + info.address);        GeoPoint geoPoint = new GeoPoint(info.pt.getLatitudeE6(),                info.pt.getLongitudeE6());        double poiDistance = DistanceUtil.getDistance(appContext.locGeoPoint,                geoPoint);        String dist = StringUtils.formatDistance(poiDistance);        listItemView.distance.setText(dist);        return convertView;    }}


0 0
原创粉丝点击