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 DeviceModelRecyclerViewAdapter 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 DeviceModelRecyclerViewAdapter(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 LinearLayout ll; public ViewHolder(View v) { super(v); } } // Create new views (invoked by the layout manager) @Override public DeviceModelRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View convertView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.listview_add_device_item, parent, false); ViewHolder viewHolder = new ViewHolder(convertView); viewHolder.name = (TextView) convertView.findViewById(R.id.name); viewHolder.imv = (ImageView) convertView.findViewById(R.id.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); holder.name.setText(map.get("name")); holder.name.setTextColor(context.getResources().getColor(R.color.black)); 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; } }