使用 Espresso 单击 RecyclerView 项目内的视图

2024-01-08

如何使用 Espresso 单击某个视图中的特定视图回收视图物品?我知道我可以使用以下命令单击位置 0 处的项目:

onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));

但我需要单击该项目内的特定视图,而不是项目本身。

- 编辑 -

更准确地说:我有一个回收视图 (R.id.recycler_view) 哪些项目是CardView (R.id.card_view)。每个里面CardView我有四个按钮(除其他外),我想单击一个特定按钮(R.id.bt_deliver).

我想使用 Espresso 2.0 的新功能,但我不确定是否可行。

如果不可能,我想使用这样的东西(使用托马斯·凯勒代码):

onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click());

但我不知道问号上该打什么。


您可以通过自定义视图操作来完成此操作。

public class MyViewAction {

    public static ViewAction clickChildViewWithId(final int id) {
        return new ViewAction() {
            @Override
            public Matcher<View> getConstraints() {
                return null;
            }

            @Override
            public String getDescription() {
                return "Click on a child view with specified id.";
            }

            @Override
            public void perform(UiController uiController, View view) {
                View v = view.findViewById(id);
                v.performClick();
            }
        };
    }

}

然后你可以点击它

onView(withId(R.id.rv_conference_list)).perform(
            RecyclerViewActions.actionOnItemAtPosition(0, MyViewAction.clickChildViewWithId(R.id. bt_deliver)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Espresso 单击 RecyclerView 项目内的视图 的相关文章

  • 找不到参数的方法 dependencyResolutionManagement()

    我正在尝试使用老师给我的一个项目 但它显示了一个错误 Settings file Users admin AndroidStudioProjects HTTPNetworking settings gradle line 1 A probl
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • SearchView过滤ListView

    我已经实现了搜索视图来过滤我的列表视图项目 当我输入任何文本时 它会过滤列表 但当我退出搜索视图时 它不会返回原始列表项 public class PlacesListAdapter extends ArrayAdapter
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 更改 tkinter 中的输入框背景颜色

    所以我一直在研究这个程序 但我发现很难找出问题所在 我对 tkinter 还很陌生 所以这可能很小 我试图让程序在按下复选按钮时更改输入框的背景颜色 或者更好的是 如果我可以动态地改变它 那就更好了 这是我目前的代码 TodayReadin
  • 在Java中无损JPEG旋转(90/180/270度)?

    是否有一个 Java 库可以以 90 度的增量旋转 JPEG 文件 而不会导致图像质量下降 我找到了这个 http mediachest sourceforge net mediautil http mediachest sourcefor
  • 使用 Azure 管道在特定的自托管服务器上运行

    在 Azure git 中 我正在运行一些自托管代理 它们位于名为 默认 的池中 在 Azure 管道 yml 文件 中 我可以告诉作业它必须在特定代理中运行 如下所示 pool name Default demands Agent Nam
  • 假装电报机器人正在打字?

    如何让机器人假装正在输入消息 当机器人假装打字时 聊天中会出现以下文本 我用的是蟒蛇aiogram https github com aiogram aiogram框架 但对原生 Telegram API 的建议也会有所帮助 我认真建议使用
  • MySQL CSV 导入 - 如果时间戳有毫秒,则日期输入为 0000-00-00 00:00:00?

    我目前有大量 CSV 需要导入到 MySQL 数据库中 这些文件包含每条记录的时间戳 其格式如下 例如 2011 10 13 09 36 02 297000000 我知道 MySQL 错误 8523 它表明不支持在日期时间字段中存储毫秒 尽
  • 如何强制 GCC 假定浮点表达式为非负?

    在某些情况下 您知道某个浮点表达式始终为非负数 例如 当计算向量的长度时 sqrt a 0 a 0 a N 1 a N 1 NB I am意识到std hypot 这与问题无关 并且平方根下的表达式显然是非负的 然而 海湾合作委员会outp
  • NHibernate WinForms 应用程序使用哪个缓存

    我有一个带有数据库后端 oracle 的 C WinForms 应用程序 并使用 NHibernate 进行 O R 映射 我想尽可能减少与数据库的通信 因为这里的网络非常慢 所以我阅读了有关二级缓存的内容 我发现这个很好的介绍 http
  • ELB 和 ECS 集群前面的 Amazon API Gateway

    我尝试将 Amazon API Gateway 放在应用程序负载均衡器前面 该负载均衡器可以平衡到我的 ECS 集群的流量 我的所有微服务都部署在该集群上 使用 API 网关的动机是通过 lambda 函数使用自定义授权方 系统图 用亚马逊
  • Asp.Net Core 1.1 在密钥环中找不到密钥

    VS 2017 中的默认项目 https i stack imgur com Y12YS jpg我在 vs 2017 社区中创建了一个新的 Asp net Core Web 应用程序并将其发布到 FTP 托管上 但是当我提交表单 登录或用户
  • 幂律与其他分布的比较

    我正在使用 Jeff Alstott 的 Python powerlaw 包来尝试使我的数据符合幂律 Jeff 的软件包基于 Clauset 等人讨论幂律的论文 首先 我的数据的一些详细信息 它是离散的 字数数据 它严重向左倾斜 高偏度 I
  • 如何在不阅读的情况下获取文件中的行数[重复]

    这个问题在这里已经有答案了 可能的重复 如何快速统计行数 https stackoverflow com questions 6101367 how to count lines fast 我有一些文件逐行包含数据 我想获取文件中的行数以向
  • 通过比较 2 个列表/行的相似度进行图像旋转匹配 OpenCV Python

    我拿一个模板 并从中抽取 8 个点 现在为 36 个 每个小点都是一个掩模 我从那个小点区域中取平均值 然后将它们添加到列表中 它最终看起来像这样 203 176 160 174 185 185 152 136 131 131 131 13
  • 在 Groovy 中计算赋值表达式

    我有这样的表达 def expr anything something 就我而言 上面的字符串来自网络服务 但它可能来自任何地方 我想对此进行评估 以便最终得到具有 某物 值的变量 anything 这样 assert anything s
  • 为什么克隆的存储库比获取的存储库大 10 倍?

    我们有一个远程仓库 其大小已经爆炸 1 4G 到 14G 我们正在尝试找出此存储库大小增加的原因并解决问题 在这个过程中我们注意到 git clone 和 git fetch 之间的显着差异 如果我们克隆仓库 克隆的仓库也是 14G git
  • 发布 Google Apps 脚本库

    我对如何发布新库有点困惑 我为 Google Apps 脚本创建了一个我认为非常酷且有用的库 google api client https docs google com macros library versions d M5CBUAH
  • 在缩放模式 Picturebox 中平移矩形位置会导致负 Y 坐标

    我正在使用以下类参考 在缩放模式 Picturebox 中平移矩形位置 https stackoverflow com questions 53800328 translate rectangle position in zoom mode
  • 如何在 Angular 2 中正确从 http.get 中提取 JSON 数据?

    我似乎无法使用 json 文件中的信息为视图创建一个变量 但我已经很接近了 我可以回显中的信息 subscribe chain 但它不会将其设置为变量 它们只是未定义 我做错了什么 我只想将 json 文件加载到组件视图中的变量中 在 An
  • Maven 组装子模块多模块

    您好 我需要从主目录中的多模块项目中组装 jar 让我们有一个这样的结构 MASTER pom A3 pom A1 jar A2 jar B3 pom B1 jar B2 jar 我想要实现的是将MASTER中的所有jar包模块进行组装 j
  • 使用“new”实例化时到底发生了什么?

    让我们考虑以下代码 class a public var1 function disp echo this gt var1 obj1 new a echo br After instantiation into obj1 br xdebug
  • 使用 Espresso 单击 RecyclerView 项目内的视图

    如何使用 Espresso 单击某个视图中的特定视图回收视图物品 我知道我可以使用以下命令单击位置 0 处的项目 onView withId R id recyclerView perform RecyclerViewActions act