package com.Intelligent.FamilyU.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.Intelligent.FamilyU.R; import java.util.HashMap; import java.util.List; public class DeviceModelHomeRecyclerViewAdapter extends RecyclerView.Adapter { private List> mlist; private Context context; private OnItemClickListener mOnItemClickListener; public static interface OnItemClickListener { void onItemClick(int position); void onItemLongClick(int position); } public DeviceModelHomeRecyclerViewAdapter(Context context, List> list, OnItemClickListener onItemClickListener) { super(); mlist = list; this.context = context; mOnItemClickListener = onItemClickListener; } public static class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case public TextView name; public ImageView imv; public ImageView nameIv; public LinearLayout ll; public ViewHolder(View v) { super(v); } } // Create new views (invoked by the layout manager) @Override public DeviceModelHomeRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View convertView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.listview_add_device_home_item, parent, false); ViewHolder viewHolder = new ViewHolder(convertView); viewHolder.name = (TextView) convertView.findViewById(R.id.name_tv); viewHolder.imv = (ImageView) convertView.findViewById(R.id.iv); viewHolder.nameIv = (ImageView) convertView.findViewById(R.id.name_iv); viewHolder.ll = (LinearLayout) convertView.findViewById(R.id.ll); return viewHolder; } // Replace the contents of a view (invoked by the layout manager) @Override public void onBindViewHolder(ViewHolder holder, final int position) { // - get element from your dataset at this position // - replace the contents of the view with that element HashMap map = mlist.get(position); String name = map.get("name"); holder.name.setText(name); if ("add".equals(name)) { holder.name.setVisibility(View.GONE); holder.nameIv.setVisibility(View.GONE); holder.imv.setImageResource(R.mipmap.dlna_icon_member_add); } else { holder.name.setVisibility(View.VISIBLE); holder.nameIv.setVisibility(View.VISIBLE); holder.imv.setImageResource(R.mipmap.icon_big_study); } holder.ll.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mOnItemClickListener.onItemClick(position); } }); holder.ll.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { mOnItemClickListener.onItemLongClick(position); return true; } }); } // Return the size of your dataset (invoked by the layout manager) @Override public int getItemCount() { return mlist.size(); } public void refreshData(List> list) { if (null != mlist) { mlist.clear(); } mlist.addAll(list); notifyDataSetChanged(); } public List> getAllList() { return mlist; } // 添加数据 public void addData(HashMap map, int position) { mlist.add(map); //添加动画 notifyItemInserted(position); } // 删除数据 public void removeData(int position) { mlist.remove(position); //删除动画 notifyItemRemoved(position); notifyDataSetChanged(); } public void addBtn() { if (null == mlist || mlist.size() == 0) { return; } // if ("add".equals(mlist.get(mlist.size() - 1).get("name"))) { // mlist.remove(mlist.size() - 1); // } HashMap map = new HashMap(); map.put("name", "add"); mlist.add(map); notifyItemInserted(mlist.size()-1); // List> list = new ArrayList<>(); // list.addAll(mlist); // refreshData(list); } }