package com.amap.map3d.demo.route; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.amap.api.services.route.RideStep; import com.amap.map3d.demo.R; import com.amap.map3d.demo.util.AMapUtil; /** * 骑行路线详情页adapter * */ public class RideSegmentListAdapter extends BaseAdapter { private Context mContext; private List<RideStep> mItemList = new ArrayList<RideStep>(); public RideSegmentListAdapter(Context applicationContext, List<RideStep> steps) { mContext = applicationContext; mItemList.add(new RideStep()); for (RideStep rideStep : steps) { mItemList.add(rideStep); } mItemList.add(new RideStep()); } @Override public int getCount() { return mItemList.size(); } @Override public Object getItem(int position) { return mItemList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = View.inflate(mContext, R.layout.item_bus_segment, null); holder.lineName = (TextView) convertView .findViewById(R.id.bus_line_name); holder.dirIcon = (ImageView) convertView .findViewById(R.id.bus_dir_icon); holder.dirUp = (ImageView) convertView .findViewById(R.id.bus_dir_icon_up); holder.dirDown = (ImageView) convertView .findViewById(R.id.bus_dir_icon_down); holder.splitLine = (ImageView) convertView .findViewById(R.id.bus_seg_split_line); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } final RideStep item = mItemList.get(position); if (position == 0) { holder.dirIcon.setImageResource(R.drawable.dir_start); holder.lineName.setText("出发"); holder.dirUp.setVisibility(View.INVISIBLE); holder.dirDown.setVisibility(View.VISIBLE); holder.splitLine.setVisibility(View.INVISIBLE); return convertView; } else if (position == mItemList.size() - 1) { holder.dirIcon.setImageResource(R.drawable.dir_end); holder.lineName.setText("到达终点"); holder.dirUp.setVisibility(View.VISIBLE); holder.dirDown.setVisibility(View.INVISIBLE); return convertView; } else { holder.splitLine.setVisibility(View.VISIBLE); holder.dirUp.setVisibility(View.VISIBLE); holder.dirDown.setVisibility(View.VISIBLE); String actionName = item.getAction(); int resID = AMapUtil.getWalkActionID(actionName); holder.dirIcon.setImageResource(resID); holder.lineName.setText(item.getInstruction()); return convertView; } } private class ViewHolder { TextView lineName; ImageView dirIcon; ImageView dirUp; ImageView dirDown; ImageView splitLine; } }