package net.plil.clubinfo.etunicorn.app.consommation; import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.PopupMenu; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import net.plil.clubinfo.etunicorn.R; import net.plil.clubinfo.etunicorn.data.Consommation; import java.util.List; import java.util.Locale; class ConsommationRecyclerViewAdapter extends RecyclerView.Adapter { private final List mValues; private final FragmentConsommation.OnListFragmentInteractionListener mListener; private final Context context; ConsommationRecyclerViewAdapter(List items, FragmentConsommation.OnListFragmentInteractionListener listener, Context context) { mValues = items; mListener = listener; this.context = context; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.fragment_consomation_item, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { holder.mItem = mValues.get(position); holder.mIdView.setText(String.format(Locale.US, "%d", mValues.get(position).getIdConsomation())); holder.mContentView.setText(mValues.get(position).getNomConsomation()); holder.mPriceView.setText(String.format(Locale.US, "%.2f", mValues.get(position).getPrix())); holder.mView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (null != mListener) { mListener.onListFragmentInteraction(holder.mItem); } } }); holder.mButtonMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final PopupMenu popup = new PopupMenu(v.getContext(), holder.mButtonMenu); //inflating menu from xml resource popup.inflate(R.menu.option_list); //adding click listener popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.delete: DeleteConsommation deleteConsommation = DeleteConsommation.newInstance(holder.mItem); deleteConsommation.show(((AppCompatActivity) context).getSupportFragmentManager(), "deleteConsommation"); break; case R.id.modify: ModifyConsommation modifyConsommation = ModifyConsommation.newInstance(holder.mItem); modifyConsommation.show(((AppCompatActivity) context).getSupportFragmentManager(), "modifyConsommation"); break; } return false; } }); //displaying the popup popup.show(); } }); } @Override public int getItemCount() { return mValues.size(); } class ViewHolder extends RecyclerView.ViewHolder { final View mView; final TextView mIdView; final TextView mContentView; final TextView mPriceView; final TextView mButtonMenu; Consommation mItem; ViewHolder(View view) { super(view); mView = view; mIdView = (TextView) view.findViewById(R.id.consomation_id); mContentView = (TextView) view.findViewById(R.id.consomation_name); mPriceView = (TextView) view.findViewById(R.id.consomation_price); mButtonMenu = (TextView) view.findViewById(R.id.consomation_options); } } }