2011-12-19 11 views
1

私はウェブサイトを読んで自動的に作成されたテキストがページにあるアプリケーションを作成しようとしていますか?データ/テキストをウェブサイトから取り出して、テキストビュー、リストビューなどでアンドロイドアプリに入力する方法?

配列が使用され、文字列の書式設定が使用されていることを理解しています。私はAndroidプログラミングではOKですが、熟練者ではありません。

私はこのウェブサイト上で見つけるコーディングのセットを使用してみましたが、私はこれが唯一のテキストファイルをオンラインでオフ読み取るためだと思う

private TextView outtext; 
private String HTML; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    /*FROM HERE*/ 
    outtext= (TextView) findViewById(R.id.textview1); //change id if needed!!! 

     try { 
     getHTML(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    }  
    outtext.setText("" + HTML); 
    /*TO HERE*/ 
} 






private void getHTML() throws ClientProtocolException, IOException 

{ 
    HttpClient httpClient = new DefaultHttpClient(); 
    HttpContext localContext = new BasicHttpContext(); 
    HttpGet httpGet = new HttpGet("http://www.bbc.co.uk/news/"); //URL! 
    HttpResponse response = httpClient.execute(httpGet, localContext); 
    String result = ""; 

    BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

    String line = null; 
    while ((line = reader.readLine()) != null) { 
     result += line + "\n"; 
     HTML = result; 
    } 

} 

}

私はbbc.co.ukを使用してみました/ニュース/例として。私のアプリのテキストビューは 'null'を返しました。

誰かが私を助けてくれることを願っています。ありがとうございます。

答えて

0

は、whileループの外であるべき

HTML = result; 

のように見えますか?

そして、TextView値を設定した時点でHTMLにデータが入力されるのではないかと疑いがあります。その後、ハンドラでUIに結果を投稿したスレッドにHTML要求を処理する必要があります。

Handler Class API

private final Handler handler = new Handler(); 

new Thread() 
{ 
    @Override 
    public void run() 
    { 
     getHTML(); 
     handler.post(updateResults); 
    } 
}.start(); 


final Runnable updateResults = new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     updateUi(); 
    } 
}; 

private void updateUi() 
{ 
    outtext.setText("" + HTML); 
} 
関連する問題