我在onBindViewHolder方法中使用RxBinding并在RecyclerView适配器中创建订阅,该方法重用了项目。有没有简单的方法来检查我是否已经将订阅者分配给EditText对象,如果是,则删除该订阅?
我的代码看起来像这样
public void onBindViewHolder(final ItemViewHolder holder, int position) {
holder.text.setText(mProvider.get(position).text);
Subscription textSub = RxTextView.textChanges(holder.text).subscribe(new Action1<CharSequence>() {
@Override
public void call(CharSequence charSequence) {
...
}
});
subscriptions.add(textSub);
}
答案 0 :(得分:3)
无论如何都要检查我是否已经分配了订阅者 EditText对象,如果是,删除该订阅?
你可以把它作为班级成员。 E.g。
Subscription textSub = Subscriptions.unsubscribed();
然后
public void onBindViewHolder(final ItemViewHolder holder, final int position) {
holder.text.setText(mProvider.get(position).text);
textSub.unsubscribe();
textSub = RxTextView.textChanges(holder.text).subscribe(new Action1<CharSequence>() {
@Override
public void call(CharSequence charSequence) {
...
}
});
}