我刚开始使用Calabash
和所遇到的列表视图。
对于每个列表视图行我要检查一些文字和图像视图的存在。
但是我不能确定我怎么能遍历列表视图?
就像是
foreach list_item in listview
check text label with id
check image view with id
end
任何帮助,将不胜感激。
我刚开始使用Calabash
和所遇到的列表视图。
对于每个列表视图行我要检查一些文字和图像视图的存在。
但是我不能确定我怎么能遍历列表视图?
就像是
foreach list_item in listview
check text label with id
check image view with id
end
任何帮助,将不胜感激。
我不知道在这种情况下使用的foreach,但你可以根据列表中的索引号做。 类似项目的获取计数,然后通过他们的循环移动使用的两种选择
getListView().setSelection(21);
对于平滑滚动:
getListView().smoothScrollToPosition(21);
从这个帖子https://stackoverflow.com/a/7561660/1165581通过HandlerExploit
然后对每个项目检查图像和文字。
@ userMod2检查下面的解决方案 -
当您使用
myList.getAdapter()。getView(I,NULL,NULL)
你所得到的项目视图的新实例,请尝试
ListView.getChildAt(位置)
方法是这样
private void ButtonClick() {
/** get all values of the EditText-Fields */
View v;
ArrayList<String> mannschaftsnamen = new ArrayList<String>();
EditText et;
for (int i = 0; i < myList.getCount(); i++) {
v = myList.getAdapter().getView(i, null, null);
et = (EditText) v.findViewById(i);
mannschaftsnamen.add(et.getText().toString());
}
// Add your action code here
// Add your action code here
}
解决方案2
public void onScroll(AbsListView v, int firstVisibleItem, int visibleCount, int totalItemCount) { ListView lv = this.getListView(); int childCount = lv.getChildCount(); for (int i = 0; i < childCount; i++) { View v = lv.getChildAt(i); TextView tx = (TextView) v.findViewById(R.id.mytext); tx.setTextSize(textSize); } }
我在我的项目中使用这个和它的作品希望它可以帮助你。
在您的情况:
然后,我用滚动“XYZ”标签,然后用它把文本
声明该步骤如下:
Then /^I scroll to text with "([^\"]*)" label and touch it$/ do |name|
element="TextView text:'#{name}'"
if !element_exists(element)
wait_poll(timeout: 20,
timeout_message: 'Unable to find "Example"', :until_exists => "TextView text:'#{name}'") do
scroll_down
end
if element_exists(element)
touch element
sleep(10)
else
screenshot_and_raise "could not find the cell"
end
else
touch element
sleep(10)
end
end