package com.fanxin.huangfangyi.main.adapter; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.fanxin.huangfangyi.R; import com.fanxin.huangfangyi.main.FXConstant; import com.hyphenate.chat.EMGroup; import java.util.ArrayList; import java.util.List; public class GroupsAdapter extends BaseAdapter { private static final int TYPE_1 = 1; private static final int TYPE_2 = 2; private static final int TYPE_3 = 3; private static final int TYPE_4 = 4; private static final int TYPE_5 = 5; private static final int TYPE_6 = 6; private static final int TYPE_7 = 7; private static final int TYPE_8 = 8; private static final int TYPE_9 = 9; private Context context; private List<EMGroup> grouplist; private LayoutInflater inflater; public GroupsAdapter(Context context, List<EMGroup> grouplist) { this.context = context; this.grouplist = grouplist; inflater = LayoutInflater.from(context); } @Override public int getCount() { return grouplist.size(); } @Override public EMGroup getItem(int position) { return grouplist.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getViewTypeCount() { return 10; } @Override public int getItemViewType(int position) { EMGroup group = grouplist.get(position); String groupName_temp = group.getGroupName(); JSONArray jsonarray = new JSONArray(); try { JSONObject jsonObject = JSONObject.parseObject(groupName_temp); jsonarray = jsonObject.getJSONArray("jsonArray"); } catch (JSONException e) { } int num=jsonarray.size(); if(num==0){ num=1; }else if(num>9){ num=9; } return num; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); Log.d("type-->>",type+""); EMGroup group = grouplist.get(position); JSONArray jsonarray = new JSONArray(); String groupName = ""; try { JSONObject jsonObject = JSONObject.parseObject(group.getGroupName()); jsonarray = jsonObject.getJSONArray("jsonArray"); groupName = jsonObject.getString("groupname"); } catch (JSONException e) { } if (convertView == null) { convertView = inflater.inflate(R.layout.fx_item_groups, parent, false); RelativeLayout avatarView = (RelativeLayout) convertView.findViewById(R.id.re_avatar); avatarView.addView(creatAvatarView(type)); } ViewHolder holder = (ViewHolder) convertView.getTag(); if (holder == null) { holder = new ViewHolder(); switch (type) { case TYPE_1: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); break; case TYPE_2: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); case TYPE_3: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); holder.iv_avatar3 = (ImageView) convertView.findViewById(R.id.iv_avatar3); case TYPE_4: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); holder.iv_avatar3 = (ImageView) convertView.findViewById(R.id.iv_avatar3); holder.iv_avatar4 = (ImageView) convertView.findViewById(R.id.iv_avatar4); case TYPE_5: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); holder.iv_avatar3 = (ImageView) convertView.findViewById(R.id.iv_avatar3); holder.iv_avatar4 = (ImageView) convertView.findViewById(R.id.iv_avatar4); holder.iv_avatar5 = (ImageView) convertView.findViewById(R.id.iv_avatar5); case TYPE_6: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); holder.iv_avatar3 = (ImageView) convertView.findViewById(R.id.iv_avatar3); holder.iv_avatar4 = (ImageView) convertView.findViewById(R.id.iv_avatar4); holder.iv_avatar5 = (ImageView) convertView.findViewById(R.id.iv_avatar5); holder.iv_avatar6 = (ImageView) convertView.findViewById(R.id.iv_avatar6); case TYPE_7: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); holder.iv_avatar3 = (ImageView) convertView.findViewById(R.id.iv_avatar3); holder.iv_avatar4 = (ImageView) convertView.findViewById(R.id.iv_avatar4); holder.iv_avatar5 = (ImageView) convertView.findViewById(R.id.iv_avatar5); holder.iv_avatar6 = (ImageView) convertView.findViewById(R.id.iv_avatar6); holder.iv_avatar7 = (ImageView) convertView.findViewById(R.id.iv_avatar7); case TYPE_8: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); holder.iv_avatar3 = (ImageView) convertView.findViewById(R.id.iv_avatar3); holder.iv_avatar4 = (ImageView) convertView.findViewById(R.id.iv_avatar4); holder.iv_avatar5 = (ImageView) convertView.findViewById(R.id.iv_avatar5); holder.iv_avatar6 = (ImageView) convertView.findViewById(R.id.iv_avatar6); holder.iv_avatar7 = (ImageView) convertView.findViewById(R.id.iv_avatar7); holder.iv_avatar8 = (ImageView) convertView.findViewById(R.id.iv_avatar8); case TYPE_9: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); holder.iv_avatar2 = (ImageView) convertView.findViewById(R.id.iv_avatar2); holder.iv_avatar3 = (ImageView) convertView.findViewById(R.id.iv_avatar3); holder.iv_avatar4 = (ImageView) convertView.findViewById(R.id.iv_avatar4); holder.iv_avatar5 = (ImageView) convertView.findViewById(R.id.iv_avatar5); holder.iv_avatar6 = (ImageView) convertView.findViewById(R.id.iv_avatar6); holder.iv_avatar7 = (ImageView) convertView.findViewById(R.id.iv_avatar7); holder.iv_avatar8 = (ImageView) convertView.findViewById(R.id.iv_avatar8); holder.iv_avatar9 = (ImageView) convertView.findViewById(R.id.iv_avatar9); break; default: holder.iv_avatar1 = (ImageView) convertView.findViewById(R.id.iv_avatar1); break; } holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name); convertView.setTag(holder); } List<String> avatars = new ArrayList<>(); //用户名拼接的群名称,用于群名称未被修改的情况 String groupNameTemp = ""; // List<String> nicks = new ArrayList<>(); for (int i = 0; i < jsonarray.size(); i++) { try { JSONObject userJson = jsonarray.getJSONObject(i); avatars.add(userJson.getString("avatar")); if (i == 0) { groupNameTemp = userJson.getString("nick"); } else if (i < 4) { groupNameTemp += "、" + userJson.getString("nick"); } else if (i == 4) { groupNameTemp += "..."; } } catch (JSONException e) { } if (i > 8) break; } if (groupName.equals("未命名")) { groupName = groupNameTemp; } holder.tv_name.setText(groupName); if (jsonarray.size() != 0) { switch (type) { case TYPE_1: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); break; case TYPE_2: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); break; case TYPE_3: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(2)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar3); break; case TYPE_4: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(2)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar3); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(3)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar4); break; case TYPE_5: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(2)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar3); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(3)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar4); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(4)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar5); break; case TYPE_6: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(2)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar3); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(3)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar4); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(4)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar5); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(5)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar6); break; case TYPE_7: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(2)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar3); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(3)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar4); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(4)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar5); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(5)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar6); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(6)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar7); break; case TYPE_8: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(2)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar3); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(3)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar4); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(4)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar5); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(5)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar6); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(6)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar7); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(7)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar8); break; case TYPE_9: Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(0)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar1); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(1)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar2); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(2)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar3); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(3)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar4); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(4)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar5); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(5)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar6); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(6)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar7); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(7)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar8); Glide.with(context).load(FXConstant.URL_AVATAR + avatars.get(8)).diskCacheStrategy(DiskCacheStrategy.ALL).placeholder(R.drawable.fx_default_useravatar).into(holder.iv_avatar9); break; } } return convertView; } private static class ViewHolder { TextView tv_name; ImageView iv_avatar1; ImageView iv_avatar2; ImageView iv_avatar3; ImageView iv_avatar4; ImageView iv_avatar5; ImageView iv_avatar6; ImageView iv_avatar7; ImageView iv_avatar8; ImageView iv_avatar9; } private View creatAvatarView(int type) { switch (type) { case 1: return inflater.inflate(R.layout.fx_group_avatar1, null, false); case 2: return inflater.inflate(R.layout.fx_group_avatar2, null, false); case 3: return inflater.inflate(R.layout.fx_group_avatar3, null, false); case 4: return inflater.inflate(R.layout.fx_group_avatar4, null, false); case 5: return inflater.inflate(R.layout.fx_group_avatar5, null, false); case 6: return inflater.inflate(R.layout.fx_group_avatar6, null, false); case 7: return inflater.inflate(R.layout.fx_group_avatar7, null, false); case 8: return inflater.inflate(R.layout.fx_group_avatar8, null, false); case 9: return inflater.inflate(R.layout.fx_group_avatar9, null, false); default: return inflater.inflate(R.layout.fx_group_avatar1, null, false); } } }