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.LinearLayout; import android.widget.TextView; import com.Intelligent.FamilyU.R; import java.util.HashMap; import java.util.List; public class DeviceMessageListRecyclerViewAdapter 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 DeviceMessageListRecyclerViewAdapter(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 title; public TextView message; public TextView time; public LinearLayout ll; public ViewHolder(View v) { super(v); } } // Create new views (invoked by the layout manager) @Override public DeviceMessageListRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View convertView = LayoutInflater.from(context) .inflate(R.layout.listview_add_device_message_list_item, parent, false); ViewHolder viewHolder = new ViewHolder(convertView); viewHolder.title = (TextView) convertView.findViewById(R.id.title); viewHolder.message = (TextView) convertView.findViewById(R.id.message); viewHolder.time = (TextView) convertView.findViewById(R.id.time); 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.title.setText(map.get("title")); holder.message.setText(map.get("message")); holder.time.setText(map.get("time")); 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; } }