I'm using rxbindings snapshot version compatible with rxjava2 and everything works perfectly, but i don't know how to handle click events inside recyclerView adapter. I tried to use "rxjava 1 way" but it doesn't work.
RxJava 1.0:
class RecyclerAdapter ... {
private final PublishSubject<Int> onClickSubject = PublishSubject.create();
Observable<Int> getItemClickSignal() {
return onClickSubject;
}
@Override
public void onBindViewHolder(EcommerceAdapter.ViewHolder holder, int position) {
RxView.clicks(holder.itemView)
.map(aVoid -> position)
.subscribe(mOnClickSubject);
}
}
and in activity:
class Activity ... {
mAdapter.getItemClickSignal()
.subscribe(new Subscriber<Int>() {
@Override
public void onCompleted() {}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(int position) {
Log.d(TAG, position);
}
});
}
Rxjava 2.0 :
mAdapter.getItemClickSignal()
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer integer) throws Exception {
Log.d(TAG, position);
}
});
The same approach doesn't work with rxjava2 neither throws any exception, and i could not figure out why.