-1

I am trying to set a simple click to a recyclerview with a inner view.onclicklistener in my fragment. My question is, why it does not have any onClick callback when I click in the recyclerview area?

My code is as below:

        @Override
        public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    
            
            binding.list.recyclerview.setLayoutManager(new LinearLayoutManager(getContext()));
            binding.recyclerview.setClickable(true);
            binding.recyclerview.setAdapter(adapter);
            binding.recyclerview.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Log.d("log", "Clicked");
                }
            });
            
        }
Howard Lau
  • 163
  • 1
  • 11

2 Answers2

0

binding.recyclerview.setOnClickListener line will make RecyclerView clickable itself and you are probably looking for click listener fired when any list item/child of RecyclerView will be clicked. in that case use class in this SO and set it up like this:

binding.recyclerView.addOnItemTouchListener(
    new RecyclerItemClickListener(context, recyclerView ,new RecyclerItemClickListener.OnItemClickListener() {
      @Override public void onItemClick(View view, int position) {
        // do whatever
      }

      @Override public void onLongItemClick(View view, int position) {
        // do whatever
      }
    })
);
snachmsm
  • 17,866
  • 3
  • 32
  • 74
0

it is just because you have to perform click an event from the adapter class, Click here for more references.

Mohak Shah
  • 518
  • 3
  • 12