我正在探索RecyclerView,惊讶地发现那RecyclerView没有onItemClickListener()。
RecyclerView
onItemClickListener()
我有两个问题。
主要问题
我想知道为什么Google删除了onItemClickListener()?
Google
是否存在性能问题或其他问题?
次要问题
我解决我的问题写onClick在我的RecyclerView.Adapter:
onClick在
RecyclerView.Adapter
public static class ViewHolder extends RecyclerView.ViewHolder implements OnClickListener { public TextView txtViewTitle; public ImageView imgViewIcon; public ViewHolder(View itemLayoutView) { super(itemLayoutView); txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.item_title); imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon); } @Override public void onClick(View v) { } }
这样可以/有更好的方法吗?
public class ReactiveAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { String[] mDataset = { "Data", "In", "Adapter" }; private final PublishSubject<String> 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<String> getPositionClicks(){ return onClickSubject.asObservable(); } }