2011-09-13 8 views
0

私は、リストにたくさんのデータを表示する必要があるアプリケーション、例えば100アイテムを開発中です。私はfacebookアプリのように実装することを考えていました。ユーザーがリストの一番下までスクロールすると、すべてのデータが徐々に読み込まれます。 誰も私に助けてくれますか? また、これがうまくいかない場合は、これを実装するためのアイデアを提案できますか?私が考えていたことの1つは、メニューにLoadオプションを追加してから、繰り返しデータを追加呼び出しすることでした。アンドロイド - リストのプログレッシブロード

ありがとうございます!

答えて

0

ですonScrollListenerを使用する必要があります。残っているアイテムの数に応じて、さらに多くのアイテムをロードしてください。 IEはインデックス番号、開始と終了をWebサービスを呼び出すことによって。

私が使用した例を以下に示します。この例では、常にサーバーから次の15項目を取り出します。最初のif caseは、アイテム数がx個だけ残っている場合に新しいアイテムの取得を開始することです。 Xは2 *画面上の視認可能なアイテムの数です。それは画面の密度に依存します。

@Override 
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
    if((totalItemCount-(firstVisibleItem+visibleItemCount) <= visibleItemCount*2)) { 
     startNumber = totalItemCount; 
     endNumber = startNumber+15; 
     if(fetchclass!=null) { 
      if(!fetchclass.isRunning()) { 
       fetchclass= new fetchNewsClass(); 
       fetchclass.execute(startNumber,endNumber); 
      } 
     } 
     else { 
      fetchclass = new fetchNewsClass(); 
      fetchclass.execute(startNumber,endNumber); 
     } 
    } 
} 

startNumberとendNumberは、サーバーから正しいデータを取得するためにWebサービスを呼び出すために使用するインデックス番号です。 fetchclassは、データを取得するために使用するAsyncTaskです。

+0

あなたの例のための完全な作業用コードを提供してください。それは本当に役立つだろう! – Umang

+0

私はあなたのために仕事をするつもりはないので、おそらく誰もここでそれを行うでしょうstackoverflow。私はlistview.setonScrollListener(this)を持っていて、onScrollListenerを実装しました。フェッチクラスは、あなたのWebサービスに依存するため、自分で行う必要があります。 –

1
+0

リンクのおかげで..私はstackoverflowに新しいと十分な評判を持っていないので、私は投票を傾ける。間違いなくこれをやろうと思っています:) – Umang

関連する問題