Android(安卓)ArrayListAdapter泛型类
16lz
2021-01-26
/** * 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; }}
更多相关文章
- Android(安卓)TextView 丰富多彩的字体样式代码
- Android(安卓)弹框没有背景色及背景边框设置
- 状态栏获取信息
- Java - Android(安卓)自定义控件之圆形进度条
- Android画一个随意拖动的圆形
- android 自带的日期控件 DatePicker
- 安卓自定义简单loading
- 自定义View组合模式
- java.lang.NoClassDefFoundError: com.jayway.android.robotium.