如何处理android活动中的RecyclerView点击事件而不是适配器?

时间:2017-07-27 08:10:20

标签: java android android-recyclerview recycler-adapter android-viewholder

我有一个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对象到活动?我可以想到使用一个界面,但也许有一种更清洁的方式。

0 个答案:

没有答案