/* * 官网地站:http://www.ShareSDK.cn * 技术支持QQ: 4006852216 * 官方微信:ShareSDK (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复) * * Copyright (c) 2013年 ShareSDK.cn. All rights reserved. */ package cn.smssdk.gui; import static cn.smssdk.framework.utils.R.*; import java.util.ArrayList; import java.util.HashMap; import cn.smssdk.gui.ContactDetailPage; import m.framework.ui.widget.asyncview.AsyncImageView; import m.framework.ui.widget.asyncview.BitmapProcessor; import android.graphics.Bitmap; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class DefaultContactViewItem implements cn.smssdk.gui.ContactItemMaker { @Override public View getView(final HashMap<String, Object> user, View convertView, final ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); LayoutInflater inflater = LayoutInflater.from(parent.getContext()); int resId = getLayoutRes(parent.getContext(), "smssdk_contacts_listview_item"); convertView = inflater.inflate(resId, null); resId = getIdRes(parent.getContext(), "iv_contact"); viewHolder.ivContact = (AsyncImageView) convertView.findViewById(resId); resId = getIdRes(parent.getContext(), "tv_name"); viewHolder.tvName = (TextView) convertView.findViewById(resId); resId = getIdRes(parent.getContext(), "tv_contact"); viewHolder.tvContact = (TextView) convertView.findViewById(resId); resId = getIdRes(parent.getContext(), "btn_add"); viewHolder.btnAdd = (Button) convertView.findViewById(resId); resId = getIdRes(parent.getContext(), "rl_lv_item_bg"); viewHolder.bg = convertView.findViewById(resId); convertView.setTag(viewHolder); }else{ viewHolder = (ViewHolder) convertView.getTag(); } if(user != null){ // 如果user包含“fia”,则为应用内好友 if (user.containsKey("fia")) { viewHolder.tvName.setText(String.valueOf(user.get("nickname"))); viewHolder.tvContact.setVisibility(View.VISIBLE); String dspName = (String) user.get("displayname"); if (TextUtils.isEmpty(dspName)) { viewHolder.tvContact.setText(String.valueOf(user.get("phone"))); } else { viewHolder.tvContact.setText(dspName); } int resId = getStringRes(parent.getContext(), "smssdk_add_contact"); if (resId > 0) { viewHolder.btnAdd.setText(resId); } } else { String dspName = (String) user.get("displayname"); if (TextUtils.isEmpty(dspName)) { @SuppressWarnings("unchecked") ArrayList<HashMap<String, Object>> phones = (ArrayList<HashMap<String, Object>>) user.get("phones"); if (phones != null && phones.size() > 0) { String cp = (String) phones.get(0).get("phone"); viewHolder.tvName.setText(cp); } } else { viewHolder.tvName.setText(dspName); } viewHolder.tvContact.setVisibility(View.GONE); int resId = getStringRes(parent.getContext(), "smssdk_invite"); if (resId > 0) { viewHolder.btnAdd.setText(resId); } } viewHolder.bg.setBackgroundColor(0xffffffff); //是否有新好友,如有,改变背景颜色 if(user.containsKey("isnew")){ boolean isNew = Boolean.valueOf(String.valueOf(user.get("isnew"))); if(isNew){ viewHolder.bg.setBackgroundColor(0xfff7fcff); } } String iconUrl = user.containsKey("avatar")? (String) user.get("avatar") : null; //设置默认头像,如果有url,就去下载 int resId = getBitmapRes(parent.getContext(), "smssdk_cp_default_avatar"); if (resId > 0) { viewHolder.ivContact.execute(null, resId); } if(!TextUtils.isEmpty(iconUrl)){ Log.w(String.valueOf(user.get("displayname")) + " icon url ==>> ", iconUrl); Bitmap bm = BitmapProcessor.getBitmapFromCache(iconUrl); if (bm != null && !bm.isRecycled()) { viewHolder.ivContact.setImageBitmap(bm); }else{ viewHolder.ivContact.execute(iconUrl); } } //设置按钮事件 viewHolder.btnAdd.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(user.containsKey("fia")){ //TODO 在这里添加第一组的按钮事件 Toast.makeText(parent.getContext(), String.valueOf(user), Toast.LENGTH_SHORT).show(); } else{ ContactDetailPage contactDetailPage = new ContactDetailPage(); contactDetailPage.setContact(user); contactDetailPage.show(parent.getContext(), null); } } }); } return convertView; } public class ViewHolder{ public View bg; public AsyncImageView ivContact; public TextView tvName; public TextView tvContact; public Button btnAdd; } }