@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = convertView; ViewHolder holder = null; if (view == null) { holder = new ViewHolder(); view = LayoutInflater.from(context).inflate(R.layout.item_optional, parent, false); holder.symbol = (TextView) view.findViewById(R.id.symbol); holder.title = (TextView) view.findViewById(R.id.title); holder.buyingRate = (TextView) view.findViewById(R.id.buying_rate); holder.sellingRate = (TextView) view.findViewById(R.id.selling_rate); holder.changeRate = (Button) view.findViewById(R.id.change_rate); holder.llOptional = (LinearLayout) view.findViewById(R.id.ll_optional); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } Optional optional = items.get(position); holder.title.setText(optional.getTitle()); holder.symbol.setText(optional.getTreaty()); holder.buyingRate.setText(optional.getBuyone()); holder.sellingRate.setText(optional.getSellone()); double diff = 0; double diffPercent = 0; if (!"".equals(optional.getSellone()) && null != optional.getSellone() && !"".equals(optional.getClosed()) && null != optional.getClosed()) { diff = Double.parseDouble(optional.getSellone()) - Double.parseDouble(optional.getClosed()); diffPercent = (diff * 100) / Double.parseDouble(optional.getSellone()); } if (diff > 0) { holder.changeRate.setBackgroundResource(R.drawable.hongdi); } else if (diff == 0) { holder.changeRate.setBackgroundResource(R.drawable.huidi); } else { holder.changeRate.setBackgroundResource(R.drawable.ludi); } switch (count % 2) { case 0: holder.changeRate.setText(Utils.getBigDecimal(diffPercent) + "%"); break; case 1: holder.changeRate.setText(Utils.getBigDecimal(diff)); break; default: break; } if (diff > 0) { holder.llOptional.setBackgroundResource(R.anim.shansuo_red); cusRedAnimationDrawable = (AnimationDrawable) holder.llOptional.getBackground(); cusRedAnimationDrawable.stop(); cusRedAnimationDrawable.start(); } else if (diff < 0) { holder.llOptional.setBackgroundResource(R.anim.shansuo_green); cusGreenAnimationDrawable = (AnimationDrawable) holder.llOptional.getBackground(); cusGreenAnimationDrawable.stop(); cusGreenAnimationDrawable.start(); } holder.changeRate.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub count++; if (listener != null) listener.change(count); notifyDataSetChanged(); } }); return view; }
@SuppressLint("ResourceAsColor") @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = convertView; ViewHolder holder = null; if (view == null) { view = LayoutInflater.from(context).inflate(R.layout.item_hostory_trade, null); holder = new ViewHolder(); holder.trade_time = (TextView) view.findViewById(R.id.trade_time); holder.trade_name = (TextView) view.findViewById(R.id.trade_name); holder.trade_value = (TextView) view.findViewById(R.id.trade_value); holder.trade_price = (TextView) view.findViewById(R.id.trade_price); holder.trade_oritation = (TextView) view.findViewById(R.id.trade_oritation); holder.trade_volume = (TextView) view.findViewById(R.id.trade_volume); holder.trade_profit = (TextView) view.findViewById(R.id.trade_profit); holder.llProfit = (LinearLayout) view.findViewById(R.id.ll_profit); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } VirtualTrade trade = items.get(position); holder.trade_time.setText(trade.getUpdateTime()); if (trade.getIsClose() == 1) { if (trade.getIsOpening() == 1) { if (trade.getOrientation() == 1) { holder.trade_oritation.setText("做多"); } else { holder.trade_oritation.setText("做空"); } if (trade.getOrientation() == 1) { holder.trade_name.setText(trade.getTitle()); } else { holder.trade_name.setText(trade.getTitle()); } } else { holder.trade_oritation.setText("平仓"); if (trade.getOrientation() == 1) { holder.trade_name.setText( Html.fromHtml( "<font color='#ff0000'>" + trade.getTitle() + "</font><font color='green'>做多</font>")); } else { holder.trade_name.setText( Html.fromHtml( "<font color='#ff0000'>" + trade.getTitle() + "</font><font color='green'>做空</font>")); } } } else { holder.trade_name.setText(trade.getTitle()); if (trade.getOrientation() == 1) { holder.trade_oritation.setText("做多"); } else { holder.trade_oritation.setText("做空"); } } if (trade.getIsOpening() == 1 && trade.getIsClose() == 1) { holder.trade_value.setText( "" + Utils.getFloatDecimal(trade.getTransactionPrice() * trade.getOpenVolume())); holder.trade_price.setText("" + trade.getTransactionPrice()); holder.trade_volume.setText("" + trade.getOpenVolume()); } else { holder.trade_value.setText( "" + Utils.getFloatDecimal(trade.getTransactionPrice() * trade.getCloseVolume())); holder.trade_price.setText("" + trade.getTransactionPrice()); holder.trade_volume.setText("" + trade.getCloseVolume()); } if (trade.getIsClose() == 1) { if (trade.getIsOpening() == 0) { holder.llProfit.setVisibility(View.VISIBLE); if (trade.getOrientation() == 1) { // 做多 float profit = (trade.getTransactionPrice() - trade.getOpenPrice()) * trade.getCloseVolume(); if (profit >= 0) { holder.trade_profit.setText( Html.fromHtml( "</font><font color='red'>" + Utils.getFloatDecimal(profit) + "</font>")); } else { holder.trade_profit.setText( Html.fromHtml( "</font><font color='green'>" + Utils.getFloatDecimal(profit) + "</font>")); } } else { // 做空 float profit = (trade.getOpenPrice() - trade.getTransactionPrice()) * trade.getCloseVolume(); if (profit >= 0) { holder.trade_profit.setText( Html.fromHtml( "</font><font color='red'>" + Utils.getFloatDecimal(profit) + "</font>")); } else { holder.trade_profit.setText( Html.fromHtml( "</font><font color='green'>" + Utils.getFloatDecimal(profit) + "</font>")); } } } else { holder.llProfit.setVisibility(View.GONE); } } else { holder.llProfit.setVisibility(View.GONE); } return view; }