我试图通过使用AccessibilityInfo类来读取任何应用程序的ListView中的每个项目。问题是我通过使用以下代码获得ListView中的项目总数:
if(event.getClassName().equals("android.widget.ListView")) {
String className= TextView.class.getName();
AccessibilityNodeInfo nodeInfo= event.getSource();
int i= nodeInfo.getChildCount(); }
但是我没有得到ListView中的项目名称,例如让一个ListView中有5个文本视图,然后我想从TextViews获取文本。我试图通过使用:
进一步打破nodeInfo对象 for(int j=0; j<nodeInfo.getChildCount() ;j++){
AccessibilityNodeInfo subChild = nodeInfo.getChild(j);
CharSequence subText = subChild.getText();
Log.e("MyService: ","ListView child name: "+subText);
}
所以我在ListView中获取TextView的值时做错了,
或
不可能这样做吗?
答案 0 :(得分:1)
我自己找到了解决方案,解决方案是: event.getSource()方法返回 AccessibilityNodeInfo 的实例,通过将该实例值转换为String格式,我们可以轻松获得结果。我们需要的是打破字符串并获得所需的结果,就我而言,我的方式是:
String get_cord= String.valueOf(event.getSource());
String[] first_split= get_cord.split("[;]");
for(int i=0; i<first_split.length; i++){
if(first_split[i].contains("text")){
String[] second_split= first_split[i].split(":");
user= second_split[1].trim();
System.out.println(user);
Log.e("MyService: ","username is: "+user);
break;
}
}`