我试图点击我的arraylist的第一项几个小时,我已经阅读了很多关于Stack Overflow,教程的问题,我试图以多种方式实现它们,但它不起作用。
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。
有人知道这是什么问题吗?它在哪里?
答案 0 :(得分:0)
必须使用适配器填充ListView
。完成适配器后,只需将其添加到ListView
,如下所示:
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);
}
});
如果您需要有关适配器的帮助 - 请告诉我。为了做到这一点,我需要查看更多代码。