package com.chudiangameplay.android.adapter; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.text.Html; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.chudiangameplay.android.R; import com.chudiangameplay.android.bean.ContactInfo; import com.chudiangameplay.android.interface_.CommCallBack; import com.chudiangameplay.android.interface_.OkHttpCallBack; import com.chudiangameplay.android.manager.API_IMManager; import com.chudiangameplay.android.module_im.ui.activity.IMChartDetailAcitivty; import com.chudiangameplay.android.responce.BaseResponce; import com.chudiangameplay.android.tool.CommToast; import com.chudiangameplay.android.ui.activity.UserDetailActivity; import com.chudiangameplay.android.util.GlideUtil; import java.util.List; /** * Created by Administrator on 2018/8/22. */ public class MyContactAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { Context mContext; List<ContactInfo> list; CommCallBack callBack; String keyWords; public MyContactAdapter(Context mContext, CommCallBack callBack) { this.mContext = mContext; this.callBack = callBack; } public void setData(List<ContactInfo> list, String keyWords) { this.list = list; this.keyWords = keyWords; notifyDataSetChanged(); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater mInflater = LayoutInflater.from(mContext); ViewGroup viewGroup = (ViewGroup) mInflater.inflate(R.layout.item_contact, null, false); ContentViewHolder holder = new ContentViewHolder(viewGroup); return holder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ContentViewHolder contentViewHolder = (ContentViewHolder) holder; final ContactInfo contactInfo = list.get(position); GlideUtil.displayImage(mContext, contactInfo.headPortraitsUrl, contentViewHolder.iv_head, R.drawable.ico_im_default_head); String str = ""; if (TextUtils.isEmpty(keyWords)) { str = contactInfo.nickname; } else { String tempName = contactInfo.nickname; while (tempName.contains(keyWords)) { int index = tempName.indexOf(keyWords); str += tempName.substring(0, index); //关键字前的文字 str += "<font color='#FC203F'>" + keyWords + "</font>"; //关键字 tempName = tempName.substring(index + keyWords.length(), tempName.length()); } str += tempName; } if (TextUtils.isEmpty(str)) { contentViewHolder.tv_nickname.setText(contactInfo.nickname); } else { contentViewHolder.tv_nickname.setText(Html.fromHtml(str)); } contentViewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mContext, UserDetailActivity.class); if (!TextUtils.isEmpty(contactInfo.userId)) { intent.putExtra("uid", contactInfo.userId); } else { intent.putExtra("uid", contactInfo.id); } mContext.startActivity(intent); } }); contentViewHolder.tv_sendmsg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mContext, IMChartDetailAcitivty.class); intent.putExtra("toChatUsername", contactInfo.imId); mContext.startActivity(intent); } }); contentViewHolder.tv_guanzhu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { API_IMManager.save_attention(mContext, contactInfo.userId, "1", new OkHttpCallBack() { @Override public void onSuccess(BaseResponce baseResponce) { if ("200".equals(baseResponce.status)) { CommToast.showToast(mContext, "关注成功"); } } @Override public void onFailure(BaseResponce baseResponce) { } }); } }); } @Override public int getItemCount() { return list == null ? 0 : list.size(); } class ContentViewHolder extends RecyclerView.ViewHolder { ImageView iv_head; TextView tv_nickname, tv_guanzhu, tv_sendmsg; public ContentViewHolder(View itemView) { super(itemView); iv_head = (ImageView) itemView.findViewById(R.id.iv_head); tv_nickname = (TextView) itemView.findViewById(R.id.tv_nickname); tv_guanzhu = (TextView) itemView.findViewById(R.id.tv_guanzhu); tv_sendmsg = (TextView) itemView.findViewById(R.id.tv_sendmsg); } } }