我有一个RecyclerView,每个项目都包含一个按钮。我想在持有RecyclerView而不是适配器内的活动中处理此按钮的click事件,因为我听说这是最好的方法。
这是我的适配器类:
public class SearchResultAdapter extends RecyclerView.Adapter<SearchResultAdapter.ViewHolder> {
private List<User> results;
public SearchResultAdapter(List<User> results) {
this.results = results;
}
@Override
public SearchResultAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_search_results_recycler_view, parent, false);
return new SearchResultAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(SearchResultAdapter.ViewHolder holder, int position) {
String fullName = results.get(position).getFirstName() +
" " + results.get(position).getLastName();
holder.mFullNameTextView.setText(fullName);
}
@Override
public int getItemCount() {
return results.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.search_full_name_text_view)
TextView mFullNameTextView;
@BindView(R.id.send_request_button)
Button mSendRequestButton;
ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
如何处理mSendRequestButton
的点击事件以及User
列表中对应的results
对象到活动?我可以想到使用一个界面,但也许有一种更清洁的方式。