package mcxtzhang.recyclerviewdemo.anyview; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import java.util.List; import mcxtzhang.recyclerviewdemo.R; import mcxtzhang.recyclerviewdemo.anyview.ItemFragment.OnListFragmentInteractionListener; import mcxtzhang.recyclerviewdemo.anyview.dummy.DummyContent.DummyItem; /** * {@link RecyclerView.Adapter} that can display a {@link DummyItem} and makes a call to the * specified {@link OnListFragmentInteractionListener}. * TODO: Replace the implementation with code for your data type. */ public class MyItemRecyclerViewAdapter extends RecyclerView.Adapter<MyItemRecyclerViewAdapter.ViewHolder> { private static final String TAG = "zxt"; private final List<DummyItem> mValues; private final OnListFragmentInteractionListener mListener; public MyItemRecyclerViewAdapter(List<DummyItem> items, OnListFragmentInteractionListener listener) { mValues = items; mListener = listener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { Log.d(TAG, "onCreateViewHolder() called with: parent = [" + parent + "], viewType = [" + viewType + "]"); View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.fragment_item, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { Log.d(TAG, "onBindViewHolder() called with: holder = [" + holder + "], position = [" + position + "]"); holder.mItem = mValues.get(position); holder.mIdView.setText(mValues.get(position).id); holder.mContentView.setText(mValues.get(position).content); holder.mView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (null != mListener) { // Notify the active callbacks interface (the activity, if the // fragment is attached to one) that an item has been selected. mListener.onListFragmentInteraction(holder.mItem); } } }); } @Override public int getItemCount() { return mValues.size(); } public class ViewHolder extends RecyclerView.ViewHolder { public final View mView; public final TextView mIdView; public final TextView mContentView; public DummyItem mItem; public ViewHolder(View view) { super(view); mView = view; mIdView = (TextView) view.findViewById(R.id.id); mContentView = (TextView) view.findViewById(R.id.content); } @Override public String toString() { return super.toString() + " '" + mContentView.getText() + "'"; } } }