如何对 RecyclerView 中的项目执行编程单击?

How to perform programmatic click on a item in a RecyclerView?

您好,我有一个使用 Recycler 视图来显示一堆项目的应用程序。现在我想在列表上运行 android 测试,但我不知道如何设置对给定项目的程序化点击。谁能告诉我如何实现这一目标?

您必须从头开始实施。 RecyclerView 缺少 ListView 默认提供的一些很棒的功能。鉴于此,在适配器中,您必须在 Fragment/Activity 和 RecyclerView 之间为 Observer 声明一个接口。

附加此点击事件的正确方法是onBindViewHolder。然后在适配器中保留对 CustomListener 或 View.OnClickListener.

的引用

这是一个关于如何执行此操作的简单示例:

@Override
public void onBindViewHolder(SearchListAdapter.ViewHolder holder, final int position) {
    //Item clicked
    holder.mParent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Select or deselect
            mListener.notify(holder, position);
        }
    });
}

ViewHolder 应该是这样的:

public class ViewHolder extends RecyclerView.ViewHolder {

    private View mParent;

    public ViewHolder(View itemView) {
        super(itemView);
        mParent = itemView;
    }
}

其中 mParent 是当前行视图。