public View getView(int position, View convertView, ViewGroup parent) { FollowListItem item = null; boolean simpleMode = "FacebookMessenger".equals(platform.getName()); if (convertView == null) { LinearLayout llItem = new LinearLayout(parent.getContext()); item = new FollowListItem(); llItem.setTag(item); convertView = llItem; int dp_52 = cn.sharesdk.framework.utils.R.dipToPx(getContext(), 52); int dp_10 = cn.sharesdk.framework.utils.R.dipToPx(parent.getContext(), 10); int dp_5 = cn.sharesdk.framework.utils.R.dipToPx(parent.getContext(), 5); if (!simpleMode) { item.aivIcon = new AsyncImageView(getContext()); LinearLayout.LayoutParams lpIcon = new LinearLayout.LayoutParams(dp_52, dp_52); lpIcon.gravity = Gravity.CENTER_VERTICAL; lpIcon.setMargins(dp_10, dp_5, dp_10, dp_5); item.aivIcon.setLayoutParams(lpIcon); llItem.addView(item.aivIcon); } LinearLayout llText = new LinearLayout(parent.getContext()); llText.setPadding(0, dp_10, dp_10, dp_10); llText.setOrientation(LinearLayout.VERTICAL); LinearLayout.LayoutParams lpText = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); lpText.gravity = Gravity.CENTER_VERTICAL; lpText.weight = 1; llText.setLayoutParams(lpText); llItem.addView(llText); item.tvName = new TextView(parent.getContext()); item.tvName.setTextColor(0xff000000); item.tvName.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); item.tvName.setSingleLine(); if (simpleMode) { item.tvName.setPadding(dp_10, 0, 0, 0); } llText.addView(item.tvName); if (!simpleMode) { item.tvSign = new TextView(parent.getContext()); item.tvSign.setTextColor(0x7f000000); item.tvSign.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); item.tvSign.setSingleLine(); llText.addView(item.tvSign); } item.ivCheck = new ImageView(parent.getContext()); item.ivCheck.setPadding(0, 0, dp_10, 0); LinearLayout.LayoutParams lpCheck = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); lpCheck.gravity = Gravity.CENTER_VERTICAL; item.ivCheck.setLayoutParams(lpCheck); llItem.addView(item.ivCheck); } else { item = (FollowListItem) convertView.getTag(); } Following following = getItem(position); item.tvName.setText(following.screeName); if (!simpleMode) { item.tvSign.setText(following.description); } item.ivCheck.setImageBitmap(following.checked ? bmChd : bmUnch); if (!simpleMode) { if (isFling()) { Bitmap bm = BitmapProcessor.getBitmapFromCache(following.icon); if (bm != null && !bm.isRecycled()) { item.aivIcon.setImageBitmap(bm); } else { item.aivIcon.execute(null, AsyncImageView.DEFAULT_TRANSPARENT); } } else { item.aivIcon.execute(following.icon); } } if (position == getCount() - 1) { next(); } return convertView; }
@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")) { // 在这里添加第一组的按钮事件 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; }