Java 如何通过Espresso单击ArrayList中的第一项
我试着点击我的arraylist的第一项已经有几个小时了,我读了很多关于堆栈溢出的问题,教程,我试着用很多方法实现它们,但是都不起作用Java 如何通过Espresso单击ArrayList中的第一项,java,android,unit-testing,android-espresso,Java,Android,Unit Testing,Android Espresso,我试着点击我的arraylist的第一项已经有几个小时了,我读了很多关于堆栈溢出的问题,教程,我试着用很多方法实现它们,但是都不起作用 clickView(getSearchActivity().hintListView); onData(anything()) .onChildView(withId(R.id.hintLayout)) .atPosition(0) .perform(click()); onData(allOf(is(instanceOf(St
clickView(getSearchActivity().hintListView);
onData(anything())
.onChildView(withId(R.id.hintLayout))
.atPosition(0)
.perform(click());
onData(allOf(is(instanceOf(String.class))))
.atPosition(0)
.perform(click());
onData(instanceOf(ArrayList.class))
.atPosition(0)
.perform(click());
onData(instanceOf(String.class))
.atPosition(0)
.perform(click());
onData(anything())
.inAdapterView(withId(R.id.hintLayout))
.atPosition(0)
.perform(click());
onData(anything())
.inAdapterView(allOf(withId(R.id.hintLayout), isCompletelyDisplayed()))
.atPosition(0).perform(click());
我必须单击ListView的第一项,即获取ArrayList
此ListView的id为hintLayout
有人知道问题出在哪里吗?它在哪里?必须用适配器填充
列表视图。完成适配器后,只需将其添加到列表视图中,如下所示:
private void setListAdapter(ListDataAdapter adapter){
lvYourListView.setAdapter(adapter);
}
为了在OnClick
事件中获取数据,您需要在onCreate()方法中执行类似的操作:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
lvYourListView = (ListView) findViewById(R.id.lvListview);
lvYourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ListData data = new ListData();
data = (ListData)parent.getItemAtPosition(position);
doSomethingWithData(data);
}
});
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
lvYourListView=(ListView)findviewbyd(R.id.lvListview);
lvYourListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
ListData数据=新ListData();
data=(ListData)parent.getItemAtPosition(position);
doSomethingWithData(数据);
}
});
如果您需要适配器方面的帮助,请告诉我。我需要查看您的更多代码才能做到这一点。您使用的是ListView
还是RecyclerView
?我使用的是ListView当我必须在微调器中单击项时,可以使用:onData(instanceOf(String.class))。在位置(1)。执行(单击())
现在我遇到了大麻烦我不清楚你想做什么。你写道我必须单击列表视图的第一项。这是否意味着你必须单击第一个元素——因为你用.atPosition(0)硬编码位置。执行(单击());
我必须单击任何元素(无论是哪一个)但任何位置都不能点击——这就是问题所在。