package com.swjtu.gcmformojo; import android.content.Context; import android.support.annotation.NonNull; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; import static com.swjtu.gcmformojo.MyApplication.QQ; import static com.swjtu.gcmformojo.MyApplication.WEIXIN; /** * 消息列表适配器 * Created by HeiPi on 2017/2/14. */ public class UserAdapter extends ArrayAdapter<User> { private final int resourceId; /* 定义构造器,在Activity创建对象Adapter的时候将数据data和Inflater传入自定义的Adapter中进行处理。 */ public UserAdapter(Context context,int textViewResourceId, List<User> objects){ super(context,textViewResourceId,objects); resourceId=textViewResourceId; } @Override public long getItemId(int position) { return position; } @NonNull @Override public View getView(int position, View convertView , @NonNull ViewGroup parent ) { User user = getItem(position); View viewUser; ViewHolder ViewHolder; if(convertView == null) { viewUser=LayoutInflater.from(getContext()).inflate(resourceId,null); ViewHolder = new ViewHolder(); ViewHolder.itemType=(ImageView) viewUser.findViewById(R.id.current_user_item_type); ViewHolder.itemName=(TextView) viewUser.findViewById(R.id.current_user_item_name); ViewHolder.itemTime=(TextView) viewUser.findViewById(R.id.current_user_item_time); ViewHolder.itemMessage=(TextView) viewUser.findViewById(R.id.current_user_item_message); ViewHolder.itemMsgCount=(TextView) viewUser.findViewById(R.id.current_user_item_msgcount); viewUser.setTag(ViewHolder); }else { viewUser=convertView; ViewHolder = (ViewHolder)viewUser.getTag(); } //获得自定义布局中每一个控件的对象。 assert user != null; switch (user.getUserType()) { case QQ: ViewHolder.itemType.setImageResource(R.mipmap.qq_ico); break; case WEIXIN: ViewHolder.itemType.setImageResource(R.mipmap.weixin_ico); break; default: switch (user.getUserId()) { case "0": ViewHolder.itemType.setImageResource(R.mipmap.message); break; case "1": ViewHolder.itemType.setImageResource(R.mipmap.qq_ico); break; case "2": ViewHolder.itemType.setImageResource(R.mipmap.weixin_ico); break; default: ViewHolder.itemType.setImageResource(R.mipmap.message); } } ViewHolder.itemName.setText(user.getUserName()); ViewHolder.itemTime.setText(user.getUserTime().substring(5)); ViewHolder.itemMessage.setText(user.getUserMessage()); if(user.getMsgCount().equals("0")){ ViewHolder.itemMsgCount.setVisibility(INVISIBLE); }else { ViewHolder.itemMsgCount.setVisibility(VISIBLE); ViewHolder.itemMsgCount.setText(user.getMsgCount()); } return viewUser; } class ViewHolder { ImageView itemType; TextView itemName; TextView itemMessage; TextView itemTime; TextView itemMsgCount; } }