Overview
This prompt guides developers in implementing multi-selection functionality in an adapter for improved user interaction. Programmers working on UI/UX enhancements in mobile applications will benefit from this structured approach.
Prompt Overview
Purpose: This implementation enables multiple selection functionality in a RecyclerView adapter for enhanced user interaction.
Audience: This code is intended for developers looking to implement selection features in their Android applications.
Distinctive Feature: It includes long press and single tap interactions to manage selection states effectively.
Outcome: The adapter will notify the fragment of selection changes, allowing for dynamic UI updates based on user actions.
Quick Specs
- Media: Code
- Use case: Multi-selection in RecyclerView
- Techniques: Long press, single tap, callbacks
- Models: Set, HashSet
- Estimated time: 30 minutes
- Skill level: Intermediate
Variables to Fill
No inputs required — just copy and use the prompt.
Example Variables Block
No example values needed for this prompt.
The Prompt
Implement multiple selection functionality in your adapter with the following behavior:
1. Long Press:
– Toggling an item’s selection state to selected and entering selection mode.
2. Single Tap on Unselected Item:
– Toggling its selection state to selected.
3. Single Tap on Selected Item:
– Toggling its deselection.
4. Deselecting the Only Selected Item:
– Disabling the selection mode.
5. When Selection Mode is Disabled:
– Notify the fragment via a callback to update the UI accordingly (e.g., hide “select all” or “favorite block” controls).
Update your adapter code to incorporate this selection logic and include necessary callback interfaces for the fragment to respond to selection state changes.
**Do not provide the entire XML; only provide the updated adapter code and the defined callback interfaces.**
# Steps
– Add a data structure in the adapter to track selected item positions or IDs.
– Implement `onLongClickListener` on items to select and enter selection mode.
– Implement `onClickListener` to toggle selection based on the current selection state.
– Maintain logic to disable selection mode when no items are selected.
– Define a callback interface for selection state changes and invoke it appropriately.
# Output Format
Provide the updated adapter code snippets with the selection management logic and the callback interface definition clearly labeled.
# Examples
(Example method signatures and interface might look like)
“`java
public interface SelectionListener {
void onSelectionModeChanged(boolean enabled);
void onSelectionCountChanged(int count);
}
public class MyAdapter extends RecyclerView.Adapter {
private Set selectedItems = new HashSet();
private SelectionListener selectionListener;
// In your ViewHolder:
itemView.setOnLongClickListener(v -> {
toggleSelection(position);
return true;
});
itemView.setOnClickListener(v -> {
toggleSelection(position);
});
private void toggleSelection(int position) {
if (selectedItems.contains(position)) {
selectedItems.remove(position);
if (selectedItems.isEmpty()) {
selectionListener.onSelectionModeChanged(false);
}
} else {
selectedItems.add(position);
if (selectedItems.size() == 1) {
selectionListener.onSelectionModeChanged(true);
}
}
selectionListener.onSelectionCountChanged(selectedItems.size());
notifyItemChanged(position);
}
}
“`
# Notes
– Adapt this pattern to match your adapter’s existing code structure.
– Ensure UI changes, like profile image updates on selected items, are handled in `onBindViewHolder` based on the selection state.
– Remember to update your fragment by implementing the callback interface and updating the UI accordingly when selection state changes.
Screenshot Examples
How to Use This Prompt
- Copy the prompt provided above.
- Read the requirements for multiple selection functionality.
- Implement the steps in your adapter code as described.
- Define the callback interface for selection state changes.
- Test the functionality to ensure it works as expected.
Tips for Best Results
- Track Selections: Use a Set to manage selected item positions for efficient toggling.
- Long Press Action: Implement an onLongClickListener to enter selection mode and toggle the selected state.
- Single Tap Logic: Set an onClickListener to toggle selection for single taps based on the current state.
- Callback Interface: Define a SelectionListener interface to notify the fragment of selection state changes.
FAQ
- How to implement long press for item selection?
Use an OnLongClickListener to toggle selection and enter selection mode in your adapter. - What happens on single tap of an unselected item?
Toggle the item's selection state to selected when tapped if it is unselected. - How to handle deselection of a selected item?
On a single tap of a selected item, toggle its state to deselected. - What to do when the only selected item is deselected?
Disable selection mode and notify the fragment to update the UI accordingly.
Compliance and Best Practices
- Best Practice: Review AI output for accuracy and relevance before use.
- Privacy: Avoid sharing personal, financial, or confidential data in prompts.
- Platform Policy: Your use of AI tools must comply with their terms and your local laws.
Revision History
- Version 1.0 (February 2026): Initial release.


