OnClickListener for RecyclerView

前端 未结 6 1723
孤城傲影
孤城傲影 2020-12-10 22:57

Unlike ListView, the Android RecyclerView seems way too complicated to implement. Since there is no OnItemClickListener for RecyclerView child, I\'ve been trying to implemen

6条回答
  •  轮回少年
    2020-12-10 23:29

    It seems you have already got an answer to your question but none of the answers here attempts to solve this problem using RxJava.

    I myself is a big fan of RxJava and I never miss a chance to use it whenever possible.

    Here is what I use,

    public class ReactiveAdapter extends RecyclerView.Adapter {
        String[] mDataset = { "Data", "In", "Adapter" };
    
        private final PublishSubject onClickSubject = PublishSubject.create();
    
        @Override 
        public void onBindViewHolder(final ViewHolder holder, int position) {
            final String element = mDataset[position];
    
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   onClickSubject.onNext(element);
                }
            });
        }
    
        public Observable getPositionClicks(){
            return onClickSubject.asObservable();
        }
    }
    

    It exposes an Observable to intercept the click events. You now have full control of what ever you want to do with your click events (remember RxJava Operators?).

    Why don't you give this a try?

提交回复
热议问题