gpt4 book ai didi

android - 使用 Espresso 在 RecyclerView 项目中单击 View

转载 作者:IT老高 更新时间:2023-10-28 13:08:12 28 4
gpt4 key购买 nike

如何使用 Espresso 点击 RecyclerView 项目内的特定 View ?我知道我可以使用以下命令单击位置 0 处的项目:

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

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

提前致谢。

-- 编辑--

更准确地说:我有一个 RecyclerView (R.id.recycler_view) 其中的项目是 CardView (R. id.card_view)。在每个 CardView 内我有四个按钮(除其他外),我想点击一个特定按钮 (R.id.bt_deliver)。

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

如果不可能,我想使用这样的东西(使用 Thomas Keller 代码):

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

但我不知道在问号上放什么。

最佳答案

您可以通过自定义 View 操作来做到这一点。

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)));

关于android - 使用 Espresso 在 RecyclerView 项目中单击 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28476507/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com