2017-08-11 9 views
0

AccessibilityInfoクラスを使用して、アプリケーションのListView内のすべてのアイテムを読み込もうとしています。どのようにAccessibilityInfoを使用して任意のアプリケーションの任意のビューでテキストを読む?


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

しかし、私は、リストビュー内の項目の名前を取得していない午前:問題は、私は次のコードを使用してリストビュー内の項目の総数を取得していますということですたとえば、1つのListView内に5つのtextviewがある場合、そのTextViewsからテキストを取得します。それは、


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形式に変換することで簡単に結果を取得できます。文字列を壊して必要な結果を出すだけです。私の場合、私のやり方は:

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; 
         } 
        }` 
関連する問題