【发布时间】:2015-01-07 16:42:37
【问题描述】:
您好,我有一个应用程序使用 Recycler 视图来显示一堆项目。现在我想在列表上运行一个 android 测试,但我不知道如何设置对给定项目的编程点击。谁能告诉我如何做到这一点?
【问题讨论】:
-
它是一个视图对象。我想你可以使用
performClick(),如果我没有误解你的问题
标签: android unit-testing android-recyclerview
您好,我有一个应用程序使用 Recycler 视图来显示一堆项目。现在我想在列表上运行一个 android 测试,但我不知道如何设置对给定项目的编程点击。谁能告诉我如何做到这一点?
【问题讨论】:
performClick(),如果我没有误解你的问题
标签: android unit-testing android-recyclerview
您必须从头开始实施它。 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 是当前行视图。
【讨论】: