1
for (Element eHead : eHeadder) 
 {
String tag = eHead.tagName();
    if(tag.equals("p")
    {
     final String parsedText = eHead.text();
     Log.d("testing5", parsedText);
     runOnUiThread(new Runnable() 
       {
         public void run() { 
         data.setText(parsedText);
                            }    
        });
      }
  } 

String上記のコードでは、変数"parsedText"の html ページから "p"(paragraph) タグからデータ行を取得します。

しかし、私のTextView名前付き「データ」はforループ内にあり、の各行を1行ずつ印刷したいStringですTextView。解決策を教えてください。

4

2 に答える 2

2

連結するのではなく、毎回テキストを設定しています。Stringこのようにループで使用するのも非常に非効率的です。代わりに、を使用してStringBuilderください。これを試して:

StringBuilder sb = new StringBuilder("");

for (Element eHead : eHeadder){
    if(eHead.tagName().equals("p"){
       sb.append(eHead.text());
       sb.append("\n");
       Log.d("testing5", ehead.text());
    } 
}

runOnUiThread(new Runnable(){
    public void run(){ 
        data.setText(sb.toString());                            }    
     });
}

これにより、Stringループ内で作成される の数が減り、メモリ使用量が減り、パフォーマンスが向上します。また、TextViewテキストの設定は 1 回だけです。ずっときれい。

于 2013-09-07T15:15:21.883 に答える