package net.coding.program.subject.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import net.coding.program.R; import net.coding.program.common.ImageLoadTool; import net.coding.program.model.UserObject; import java.util.List; /** * Created by david on 15-7-20. */ public class SubjectUserListAdapter extends BaseAdapter { private List<UserObject> userItems; private Context mContext; private View.OnClickListener mFollowClickListener; public SubjectUserListAdapter(Context context, List<UserObject> items) { this.mContext = context; this.userItems = items; } @Override public int getCount() { if (userItems != null && userItems.size() > 0) { return userItems.size(); } return 0; } @Override public Object getItem(int position) { return userItems.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.activity_users_list_item, parent, false); holder = new ViewHolder(); holder.name = (TextView) convertView.findViewById(R.id.name); holder.icon = (ImageView) convertView.findViewById(R.id.icon); holder.mutual = (CheckBox) convertView.findViewById(R.id.followMutual); holder.divideTitle = (TextView) convertView.findViewById(R.id.divideTitle); holder.divideLine = convertView.findViewById(R.id.divide_line); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } final UserObject data = userItems.get(position); holder.divideTitle.setVisibility(View.GONE); holder.divideLine.setVisibility(View.VISIBLE); holder.name.setText(data.name); new ImageLoadTool().loadImage(holder.icon, data.avatar); if (data.isMe()) { holder.mutual.setVisibility(View.INVISIBLE); } else { holder.mutual.setVisibility(View.VISIBLE); int drawableId = data.follow ? R.drawable.checkbox_fans : R.drawable.checkbox_follow; holder.mutual.setButtonDrawable(drawableId); holder.mutual.setTag(position); holder.mutual.setChecked(data.followed); if (mFollowClickListener != null) { holder.mutual.setOnClickListener(mFollowClickListener); } } return convertView; } public void setFollowClickListener(View.OnClickListener onClickListener) { this.mFollowClickListener = onClickListener; } public static class ViewHolder { ImageView icon; TextView name; CheckBox mutual; TextView divideTitle; View divideLine; } }