2012-03-14 11 views
0

私はウェブからデータをダウンロードしてリストに表示しています。Android:ウェブからダウンロード中にListViewにデータを追加する方法

ここでは、ダウンロードされたときに、データ全体が10のアイテムがある場合はそのアイテムを追加したいと思っています。そのデータがリストアビューに追加され、リストがより魅力的になるようにします。

私はAsyncTaskを使用してデータをダウンロードしています。バックグラウンドでは、収集したデータをカスタムアダプタを使用してリストにバインドしています。

+0

がasynctaskは私がこれをout.ButチェックしますあなたのlistAdapter – njzk2

答えて

0

Loadersをご覧ください。このAPIを使用して3.0以前のデバイスをサポートするには、おそらくcompatibility libraryを含める必要があります。

+0

に言われた項目を追加し、 'publishProgress(myNewItem)'のような、と 'onProgressUpdate'に、進捗として各項目を公開しましフォロー既存のコードを使用したいと思います。asynctask –

+0

ローダーでこれを行うという考えは、AsyncTaskと連携して動作します。 – elevine

+0

それでは大丈夫です。 –

0

この方法を使用すると、そうすることができます。

は、その後

new MyAsynTaskname().execute(myarguments); 

してasyntaskのロード "onProgressUpdate" タスク内の現在のダウンロード処理をハンドル

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { 
    protected Long doInBackground(URL... urls) { 
     int count = urls.length; 
     long totalSize = 0; 
     for (int i = 0; i < count; i++) { 
      totalSize += Downloader.downloadFile(urls[i]); 
      publishProgress((int) ((i/(float) count) * 100)); 
     } 
     return totalSize; 
    } 

    protected void onProgressUpdate(Integer... progress) { 
     setProgressPercent(progress[0]); 
    } 

    protected void onPostExecute(Long result) { 
     showDialog("Downloaded " + result + " bytes"); 
    } 
} 

のようなあなたのAsyntaskの何かを作ります。

このAndroid Asyntask

+0

私の質問は、アイテムを1つずつ追加する方法です。秒がダウンロードされたときに1つがダウンロードされると、1つが追加されます。 –

+0

コードを教えてもらえますか?ハンドラを使用して時間をintevalに設定するだけです。このリンク[リンク](http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html)に従ってください。 –

関連する問題