2017-08-11 86 views
0

我想通過使用AccessibilityInfo類讀取任何應用程序的ListView中的每個項目。問題是我用下面這段代碼獲取ListView控件中的項目總數:如何閱讀使用AccessibilityInfo的任何應用程序的任何視圖上的文本?


if(event.getClassName().equals("android.widget.ListView")) { 
      String className= TextView.class.getName(); 
      AccessibilityNodeInfo nodeInfo= event.getSource(); 
      int i= nodeInfo.getChildCount(); } 

,但我沒有得到ListView的內部項目的名稱,例如,讓一個ListView內有5個textview,然後我想從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); 
      } 

所以我在做什麼錯在獲得的TextView的內部ListView控件的值,

是不可能這樣做?

回答

0

我已經找到了解決方案,我的解決方案是: event.getSource()方法返回一些值,並通過將該值轉換爲字符串格式,我們可以輕鬆獲得結果。我們需要的是打破字符串,並得到所需的結果,在我的情況下我的方式是:

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; 
         } 
        }` 
相關問題