-
-
Save cemtopkaya/88a975d5eb98cccac3b749968ec02d0e to your computer and use it in GitHub Desktop.
[Android] Add Context Menu to RecyclerView
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Import Statements | |
public class ActivityName extends AppCompatActivity { | |
private RecyclerView mRecyclerView; | |
private RecyclerView.Adapter mAdapter; | |
private RecyclerView.LayoutManager mLayoutManager; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_view_birthdays); | |
//Recycle View | |
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); | |
mLayoutManager = new LinearLayoutManager(getApplicationContext()); | |
mRecyclerView.setLayoutManager(mLayoutManager); | |
mAdapter = new BirthdaysListAdapter(data, this); | |
mRecyclerView.setAdapter(mAdapter); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Import Statements | |
public class BirthdaysListAdapter extends RecyclerView.Adapter<BirthdaysListAdapter.ViewHolder> { | |
static Context ctx; | |
private List<typeOfData> Data; | |
public BirthdaysListAdapter(List<typeOfData> list, Context context) { | |
Data = list; | |
this.ctx = context; | |
} | |
BirthdaysListAdapter() { | |
} | |
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener { | |
public TextView name; | |
public TextView Birthday; | |
public ImageView colorAlphabet; | |
public TextView textInImg; | |
public ViewHolder(View v) { | |
super(v); | |
name = (TextView) v.findViewById(R.id.name); | |
Birthday = (TextView) v.findViewById(R.id.Birthday); | |
colorAlphabet = (ImageView) v.findViewById(R.id.colorAlphabet); | |
textInImg = (TextView) v.findViewById(R.id.textInImg); | |
v.setOnCreateContextMenuListener(this); //REGISTER ONCREATE MENU LISTENER | |
} | |
@Override | |
public void onCreateContextMenu(ContextMenu menu, View v //CREATE MENU BY THIS METHOD | |
ContextMenu.ContextMenuInfo menuInfo) { | |
MenuItem Edit = menu.add(Menu.NONE, 1, 1, "Edit"); | |
MenuItem Delete = menu.add(Menu.NONE, 2, 2, "Delete"); | |
Edit.setOnMenuItemClickListener(onEditMenu); | |
Delete.setOnMenuItemClickListener(onEditMenu); | |
} | |
//ADD AN ONMENUITEM LISTENER TO EXECUTE COMMANDS ONCLICK OF CONTEXT MENU TASK | |
private final MenuItem.OnMenuItemClickListener onEditMenu = new MenuItem.OnMenuItemClickListener() { | |
@Override | |
public boolean onMenuItemClick(MenuItem item) { | |
DBHandler dbHandler = new DBHandler(ctx); | |
List<WishMen> data = dbHandler.getWishmen(); | |
switch (item.getItemId()) { | |
case 1: | |
//Do stuff | |
break; | |
case 2: | |
//Do stuff | |
break; | |
} | |
return true; | |
} | |
}; | |
} | |
public List<ViewBirthdayModel> getData() { | |
return Data; | |
} | |
@Override | |
public long getItemId(int position) { | |
return super.getItemId(position); | |
} | |
@Override | |
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_view_birthdays, parent, false); | |
ViewHolder vh = new ViewHolder(view); | |
return vh; | |
} | |
@Override | |
public void onBindViewHolder(final ViewHolder holder, int position) { | |
holder.name.setText(Data.get(position).getMan().getName()); | |
holder.Birthday.setText(Data.get(position).getMan().getBday()); | |
holder.colorAlphabet.setBackgroundColor(Color.parseColor(Data.get(position).getColor())); | |
holder.textInImg.setText(String.valueOf(Data.get(position).getMan().getName().toUpperCase().charAt(0))); | |
} | |
@Override | |
public int getItemCount() { | |
return Data.size(); | |
} | |
private int position; | |
public int getPosition() { | |
return position; | |
} | |
public void setPosition(int position) { | |
this.position = position; | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment