How to get selected item from RecyclerView list?

Dusan Dimitrijevic

I have created a interface for extending functionality of Recycler View and making possible to listen click on every item of list, but i can't make it to work. Nothing happens when i click on any item. Here is my code:

// METHOD FOR INITIALIZATION OF RECYCLER VIEW
public void initRecyclerView() {
    // SETTING ARRAY FOR CATEGORIES
    final CategoryItem categoryItem[] = { new CategoryItem("Birthday", R.drawable.birthday_image),
                                    new CategoryItem("Anniversary", R.drawable.anniversary_image),
                                    new CategoryItem("Anniversary", R.drawable.anniversary_image),
                                    new CategoryItem("Anniversary", R.drawable.anniversary_image),
                                    new CategoryItem("Anniversary", R.drawable.anniversary_image),
                                    new CategoryItem("Anniversary", R.drawable.anniversary_image),
                                    new CategoryItem("Anniversary", R.drawable.anniversary_image),
                                    new CategoryItem("Anniversary", R.drawable.anniversary_image)};

    // FINDING RECYCLER VIEW IN LAYOUT
    recyclerView = (RecyclerView) findViewById(R.id.list);
    recyclerView.setLayoutManager(new GridLayoutManager(this, 2));

    adapter = new CategoriesListAdapter(categoryItem);
    recyclerView.setAdapter(adapter);

    // SETTING ON CLICK LISTENER ON ADAPTER
    adapter.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void setOnItemClick(View view, int position) {
            String clickedItem = String.valueOf(position);
            if ( clickedItem.equals("Birthday") ) {
                Toast.makeText(MainActivity.this, "Clicked on Birthday!", Toast.LENGTH_SHORT).show();
            }
        }
    });
    recyclerView.setItemAnimator(new DefaultItemAnimator());

}

UPDATE:

adapter

public class CategoriesListAdapter extends RecyclerView.Adapter<CategoriesListAdapter.ViewHolder> {

private CategoryItem[] categoryItems;
private static OnItemClickListener onItemClickListener;

public CategoriesListAdapter(CategoryItem[] categoryItems) {
    this.categoryItems = categoryItems;
}

@Override
public CategoriesListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_row, parent, false);
    ViewHolder viewHolder = new ViewHolder(itemLayoutView);
    return viewHolder;
}


@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {

    viewHolder.txtViewTitle.setText(categoryItems[position].getTitle());
    viewHolder.imgViewIcon.setImageResource(categoryItems[position].getImage());

}

// inner class to hold a reference to each item of RecyclerView
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    public TextView txtViewTitle;
    public ImageView imgViewIcon;

    public ViewHolder(View itemLayoutView) {
        super(itemLayoutView);
        txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.title);
        imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.image);
        itemLayoutView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        onItemClickListener.setOnItemClick(v, getAdapterPosition());
    }
}

public void setOnItemClickListener (final OnItemClickListener onItemClickListener) {
    this.onItemClickListener = onItemClickListener;
}

// Return the size of your itemsData (invoked by the layout manager)
@Override
public int getItemCount() {
    return categoryItems.length;
}

}

INTERFACE:

public interface OnItemClickListener {

public void setOnItemClick(View view, int position);

}

It should display toast message if birthday is selected, but it's not displaying anything. I'm instancing array of class and i don't know how to listen clicked item. The answers there didn't help me solving my problem.

priitv

Currently you are checking your position against string "Birthday" in OnItemClickListener method setOnItemClick

String clickedItem = String.valueOf(position);
if ( clickedItem.equals("Birthday") ) {
    ...
}

which never gonna be true. Try getting item for position and checking its first parameter against "Birthday" or bring your Toast out from that if statement and just print out position number for beginning to understand what's going on in there

@Override
public void setOnItemClick(View view, int position) {
    Toast.makeText(MainActivity.this, "Clicked item on position: " + position, Toast.LENGTH_SHORT).show();
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

How to Get Selected Item From LibGDX List?

From Dev

How to Get Selected Item From LibGDX List?

From Dev

Get attribute value from a selected item in a list

From Dev

Get attribute value from a selected item in a list

From Dev

How to change selected recyclerview list item to be marked as a different color

From Dev

How to get selected list item in listview by using selected index

From Dev

How to highlight selected item in RecyclerView

From Dev

How to get the selected item from a DropDownList?

From Dev

ListPicker, how to get the text from the selected item?

From Dev

how to get selected item from a combo box

From Dev

how to get the item selected from QListView?

From Dev

How to get item from RecyclerView adapter in Android

From Dev

How to get the correct Item from recyclerView getAdapter( )?

From Dev

How to get the correct Item from recyclerView getAdapter( )?

From Dev

RecyclerView - Get the selected position and pass the position to another activity where the same list will appear with that specific item selected

From Dev

How do I get the selected item from drop down list and submit it to my Details view?

From Dev

How do i get id of autocomplete textview out of two autocomplete textview on item selected from its list?

From Dev

How to get selected value of list item in radio button list in jquery

From Dev

How to get the selected value from a list

From Dev

How to get selected item in list-group in bootstrap

From Java

How would I get the context of a RecyclerView List Item?

From Dev

Get Selected Item From Combobox

From Dev

Get Selected Item From Combobox

From Dev

Get Selected Item from QAbstractListModel

From Java

How to properly highlight selected item on RecyclerView?

From Dev

How to create RecyclerView with zoom on selected item?

From Dev

How to show/hide only one selected item from list

From Dev

RecyclerView make item from selected to not selected when DialogFragment appears

From Dev

How i get selected item from combo box to controller in codeigniter

Related Related

  1. 1

    How to Get Selected Item From LibGDX List?

  2. 2

    How to Get Selected Item From LibGDX List?

  3. 3

    Get attribute value from a selected item in a list

  4. 4

    Get attribute value from a selected item in a list

  5. 5

    How to change selected recyclerview list item to be marked as a different color

  6. 6

    How to get selected list item in listview by using selected index

  7. 7

    How to highlight selected item in RecyclerView

  8. 8

    How to get the selected item from a DropDownList?

  9. 9

    ListPicker, how to get the text from the selected item?

  10. 10

    how to get selected item from a combo box

  11. 11

    how to get the item selected from QListView?

  12. 12

    How to get item from RecyclerView adapter in Android

  13. 13

    How to get the correct Item from recyclerView getAdapter( )?

  14. 14

    How to get the correct Item from recyclerView getAdapter( )?

  15. 15

    RecyclerView - Get the selected position and pass the position to another activity where the same list will appear with that specific item selected

  16. 16

    How do I get the selected item from drop down list and submit it to my Details view?

  17. 17

    How do i get id of autocomplete textview out of two autocomplete textview on item selected from its list?

  18. 18

    How to get selected value of list item in radio button list in jquery

  19. 19

    How to get the selected value from a list

  20. 20

    How to get selected item in list-group in bootstrap

  21. 21

    How would I get the context of a RecyclerView List Item?

  22. 22

    Get Selected Item From Combobox

  23. 23

    Get Selected Item From Combobox

  24. 24

    Get Selected Item from QAbstractListModel

  25. 25

    How to properly highlight selected item on RecyclerView?

  26. 26

    How to create RecyclerView with zoom on selected item?

  27. 27

    How to show/hide only one selected item from list

  28. 28

    RecyclerView make item from selected to not selected when DialogFragment appears

  29. 29

    How i get selected item from combo box to controller in codeigniter

HotTag

Archive