我正在尝试使用带有(ischecked == true)属性的复选框获取linearlayaout的textview值。基本上试图获取所有选中相应复选框的项目的文本。
->ListView
-> LinearLayout
-> Checkbox
-> textview
-> textview
我尝试了以下操作:
UiScrollable citylistView = new UiScrollable(new UiSelector());
listView.setMaxSearchSwipes(100);
listView.scrollTextIntoView(name);
listView.waitForExists(5000);
UiObject listViewItem = listView.getChildByText(new UiSelector()
.className(android.widget.CheckBox.ischecked(true));
String cityName =listViewItem.gettext();
但这似乎不起作用。 如果有人能指出我做错了什么,我真的很感激。 谢谢你的帮助!
答案 0 :(得分:1)
您的代码存在一些问题:
citylistView
应为listView
?第5-6行不会编译。 UiSelector.className(..)方法采用String或Class对象,因此它应该是.className("android.widget.CheckBox")
或.className(android.widget.CheckBox.class)
同样在第6行,您在调用isChecked(true)
之前错过了一个右括号。而不是.className(android.widget.CheckBox.ischecked(true))
它应该是.className(android.widget.CheckBox.class).ischecked(true)
答案 1 :(得分:0)
从我能看到的是
.className(android.widget.CheckBox.ischecked(true));
不正确,因为该函数需要一个字符串。我想你需要像这样重写它。
UiObject checkBox = listView.getChildByText(new UiSelector()
.className("android.widget.CheckBox");
if(checkBox.isSelected()){
String cityName = listView.getChildByText(new UiSelector()
.className("android.widget.TextView").gettext();
}
如果我是正确的,这应该有助于你的解决方案,这对于截面和xml的屏幕截图很有用,更容易知道它是如何直接布局的。不幸的是我无法测试这个解决方案,但我希望它有所帮助。