i would like to know how to put an contextmenu within an recyclerview item provided by FirebaseUI and be able to do some actions knowing wich item was long pressed. Because when i try to use onCreateContextMenu on my holder class my ContextMenuInfo comes with null value. here is my holder class:
public class PlayerHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener {
//private static final String TAG = PlayerHolder.class.getSimpleName();
public TextView playerName;
public TextView playerAge;
public PlayerHolder(View itemView) {
super(itemView);
playerName = (TextView) itemView.findViewById(R.id.player_name);
playerAge = (TextView) itemView.findViewById(R.id.player_age);
itemView.setOnCreateContextMenuListener(this);
}
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.add(0, 1, 0, "Edit");//groupId, itemId, order, title
menu.add(0, 2, 0, "Share");
menu.add(0, 3, 0, "Delete");
}
//@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView .AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case 1:
//editNote(info.id);
return true;
case 2:
//shareNote(info.id);
return true;
case 3:
//deleteNote(info.id);
return true;
default:
//return super.onContextItemSelected(item);
return false;
}
}
}
and this is my firebaseui recycler adapter class
public class PlayerAdapter extends FirebaseRecyclerAdapter<Player, PlayerHolder> {
private static final String TAG = PlayerAdapter.class.getSimpleName();
private Context context;
public PlayerAdapter(Class<Player> modelClass, int modelLayout, Class<PlayerHolder> viewHolderClass, DatabaseReference ref, Context context) {
super(modelClass, modelLayout, viewHolderClass, ref);
this.context = context;
}
@Override
protected void populateViewHolder(PlayerHolder viewHolder, Player model, int position) {
viewHolder.playerName.setText(model.getName());
viewHolder.playerAge.setText(String.valueOf(playerAge) + " Years");
}
}