package cn.bidaround.youtui_template; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import cn.bidaround.point.YtPoint; import cn.bidaround.ytcore.YtCore; import cn.bidaround.ytcore.data.YtPlatform; /** * 友推提供分享弹出界面的适配器 * @author youtui * @since 2015/1/12 */ public class TemplateAdapter extends BaseAdapter { protected Context context; protected ArrayList<String> list; protected boolean hasAct = false; protected String layoutName; public TemplateAdapter(Context context, ArrayList<String> list, String layoutName, boolean hasAct) { this.context = context; this.hasAct = hasAct; this.layoutName = layoutName; this.list = list; } @Override public int getCount() { if(list != null && !list.isEmpty()) return list.size(); return 0; } @Override public Object getItem(int arg0) { return null; } @Override public long getItemId(int arg0) { return 0; } @Override public View getView(int position, View convertView, ViewGroup arg2) { ViewHoder hoder = null; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(YtCore.res.getIdentifier(layoutName, "layout", YtCore.packName), null); hoder = new ViewHoder(); hoder.platformLogo = (ImageView) convertView.findViewById(YtCore.res.getIdentifier("logo", "id", YtCore.packName)); hoder.platformName = (TextView) convertView.findViewById(YtCore.res.getIdentifier("platform_name", "id", YtCore.packName)); hoder.point = (TextView) convertView.findViewById(YtCore.res.getIdentifier("point", "id", YtCore.packName)); hoder.sign = (TextView) convertView.findViewById(YtCore.res.getIdentifier("sign", "id", YtCore.packName)); convertView.setTag(hoder); } else { hoder = (ViewHoder) convertView.getTag(); } fillView(hoder, position); return convertView; } /** * 填充子项 */ private void fillView(ViewHoder hoder, int position) { hoder.platformLogo.setImageResource(ShareList.getLogo(list.get(position), context)); hoder.platformName.setText(ShareList.getTitle(list.get(position), context)); // 显示积分 int id = YtPlatform.getPlatformByName(list.get(position)).getChannleId(); if(id != -1) showPoint(hoder.sign, hoder.point, id); else{ hoder.point.setVisibility(View.INVISIBLE); if(hoder.sign != null) hoder.sign.setVisibility(View.INVISIBLE); } } /** * 显示积分 */ private void showPoint(View signView, TextView pointView, int channelId) { // 积分为0时不显示 if(hasAct){ int point = YtPoint.getPoint(channelId); if (point == 0) { if(signView != null) signView.setVisibility(View.INVISIBLE); pointView.setVisibility(View.INVISIBLE); } else { if(signView != null) signView.setVisibility(View.VISIBLE); pointView.setVisibility(View.VISIBLE); pointView.setText("分享+"+point+"积分"); } }else{ if(signView != null) signView.setVisibility(View.INVISIBLE); pointView.setVisibility(View.INVISIBLE); } } protected class ViewHoder { /** 平台的logo*/ ImageView platformLogo; /** 平台显示的名字 */ TextView platformName; /** 平台右上角的红色圆角控件*/ View sign; /** 显示分享能获得的积分数*/ TextView point; } }