【问题标题】:How to perform programmatic click on a item in a RecyclerView?如何对 RecyclerView 中的项目执行编程单击?
【发布时间】:2015-01-07 16:42:37
【问题描述】:

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

【问题讨论】:

  • 它是一个视图对象。我想你可以使用performClick(),如果我没有误解你的问题

标签: android unit-testing android-recyclerview


【解决方案1】:

您必须从头开始实施它。 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 是当前行视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2019-12-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多