public class PriceAdapter extends BaseAdapter {
Map gasPrice;//加油站价格
Map price;//省控基准油价
Context contxt;
ArrayList<String> price_num_list;
ArrayList<String> gas_num_list;
String oil_num;//油号
String oil_price;//油价
public PriceAdapter(Context context, Map gasPrice, Map price) {
this.gasPrice = gasPrice;
this.price = price;
this.contxt = context;
price_num_list = getList(price);
gas_num_list = getList(gasPrice);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Map map;
ArrayList<String> oil_num_list;
if(position == 0){
TextView tv = new TextView(contxt);
tv.setTextColor(Color.WHITE);
tv.setBackgroundColor(Color.GRAY);
tv.setText("加油站价格:");
return tv;
}
else if(position ==(gas_num_list.size() + 1))
{
TextView tv = new TextView(contxt);
tv.setTextColor(Color.WHITE);
tv.setBackgroundColor(Color.GRAY);
tv.setText("省控基准油价:");
return tv;
}
else if(position <= gas_num_list.size())
{
map = gasPrice;
oil_num_list = gas_num_list;
int newposition = position - 1;
oil_num = oil_num_list.get(newposition);
oil_price = map.get(oil_num).toString();
}
else
{
map = price;
oil_num_list = price_num_list;
int newposition = position - 1 - gas_num_list.size() - 1;
oil_num = oil_num_list.get(newposition);
oil_price = map.get(oil_num).toString();
}
View inview;
ViewHolder viewHolder;
if(convertView != null && convertView instanceof LinearLayout)
{
// 需要检查是否为空,还要判断是否是合适的类型去复用,因为convertView 有可能是TextView 如果不检查会报空值
inview = convertView;
viewHolder = (ViewHolder) inview.getTag();
}
else
{
inview = LayoutInflater.from(contxt).inflate(R.layout.lv_price, null);;
viewHolder = new ViewHolder();
viewHolder.tv_lv_price_name = (TextView) inview.findViewById(R.id.tv_lv_price_name);
viewHolder.tv_lv_price_price = (TextView) inview.findViewById(R.id.tv_lv_price_price);
inview.setTag(viewHolder);
}
viewHolder.tv_lv_price_name.setText(oil_num);
viewHolder.tv_lv_price_price.setText(oil_price);
return inview;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public int getCount() {
return gas_num_list.size() + 1 + price_num_list.size() + 1;
}
class ViewHolder {
TextView tv_lv_price_name;
TextView tv_lv_price_price;
}
public ArrayList<String> getList(Map<String,String> map){
ArrayList<String> list = new ArrayList();
Set set = map.keySet();
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
String temp = iterator.next();
list.add(temp);
}
return list;
}
}
做一个笔记方便以后自己复习使用