Add a ClickListener to a ListAdapter, in this case a RecyclerView.Adapter.
Within list Adapter class (called ItemListAdapter in this example):private final ListItemClickListener mOnClickListener; // Declare field for OnClickListener public interface ListItemClickListener { // Create custom interface for your OnClickListener void onListItemClick (int item); } public ItemListAdapter(int numberOfItems, ListItemClickListener listItemClickListener) { // Add as parameter to Adapter constructor mNumberItems = numberOfItems; mOnClickListener = listItemClickListener; } class NumberViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { // In class that generates item View implement View.OnClickListener public NumberViewHolder(View itemView) { super(itemView); itemView.setOnClickListener(this); // Set an } @Override // Override onClick public void onClick(View v) { mOnClickListener.onListItemClick(getAdapterPosition()); // Call custom interface instance } }Within Activity.
public class MainActivity extends AppCompatActivity implements ItemListAdapter.ListItemClickListener { // Implement the custom interface mAdapter = new ItemListAdapter(NUM_LIST_ITEMS, this); // Second parameter produces custom OnClickListener in constructor @Override // Override the onListItemClick from the custom interface public void onListItemClick(int item) { if (mToast != null) { mToast.cancel(); } Context context = this; CharSequence text = "Item number: " + item; int duration = Toast.LENGTH_SHORT; mToast = Toast.makeText(context, text, duration); mToast.show(); } }ud851-Exercises-student\Lesson03-Green-Recycler-View\T03.07-Exercise-RecyclerViewClickHandling
ud851-Sunshine-student\ud851-Sunshine-student\S03.02-Exercise-RecyclerViewClickHandling
