package cn.wildfire.chat.kit.widget; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import cn.wildfire.chat.kit.R; import java.util.ArrayList; import java.util.List; /** * Created by HanHailong on 15/10/19. */ public class TagAdapter extends BaseAdapter implements OnInitSelectedPosition { private final Context mContext; private final List mDataList; private Integer textBg; public TagAdapter(Context context) { this.mContext = context; mDataList = new ArrayList<>(); } public void changeTagBg(int textBg) { this.textBg = textBg; notifyDataSetInvalidated(); } @Override public int getCount() { return mDataList.size(); } @Override public Object getItem(int position) { return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = LayoutInflater.from(mContext).inflate(R.layout.tag_item, null); TextView textView = (TextView) view.findViewById(R.id.tv_tag); cn.wildfire.chat.kit.widget.TagItem item = mDataList.get(position); Object tag = view.getTag(); if (tag != null && "del".equalsIgnoreCase(tag.toString())) { item.setShow(false); } textView.setBackgroundResource(item.getBgSelector()); if (textBg != null) { textView.setBackgroundResource(textBg); } textView.setText(item.getName()); return view; } public void onlyAddAll(List datas) { mDataList.addAll(datas); notifyDataSetChanged(); } public void onlyAddOnPosition(cn.wildfire.chat.kit.widget.TagItem data, int position) { mDataList.add(position, data); notifyDataSetChanged(); } public void onlyAddOne(cn.wildfire.chat.kit.widget.TagItem data) { mDataList.add(data); notifyDataSetChanged(); } public void clearAndAddAll(List datas) { mDataList.clear(); onlyAddAll(datas); } @Override public boolean isSelectedPosition(int position) { cn.wildfire.chat.kit.widget.TagItem tagItem = mDataList.get(position); if (tagItem == null) { return false; } return tagItem.isDefault(); } }