初めて私はonscroll listenerを使用しています。私の問題は、スクロールするたびに20個の新しい行をフェッチする方法です。setOnScrollListenerを使用してサーバから20行しか取り出しません
グリッドビューをスクロールダウンすると、このコードが実行されます。
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
this.currentFirstVisibleItem = firstVisibleItem;
this.currentVisibleItemCount = visibleItemCount;
this.totalItem = totalItemCount;
if ((totalItemCount - visibleItemCount) <= (firstVisibleItem + 20)) {
// the below when executed will get all the rows ,I only need 20 rows
handler.execute().get();
}
}
この接続はあなたがデータロードのためbase
とlimit
を維持する必要が
protected void showList(){
try {
JSONObject jsonObj = new JSONObject(myJSON);
peoples = jsonObj.getJSONArray("result");
System.out.println("Length:"+peoples.length());
int J_length=peoples.length()-1;
jsonObj= peoples.getJSONObject(J_length);
Listitem = new ArrayList<Listitem>();
for (int i = 0; i < peoples.length(); i++) {
JSONObject c = peoples.getJSONObject(i);
String id = c.getString("id");
String url = c.getString("url");
int intid = 0;
try {
intid = Integer.parseInt(id.toString());
} catch (NumberFormatException nfe) {
System.out.println("Could not parse " + nfe);
}
Listitem.add(new Listitem(id, url));
System.out.println(Listitem);
}
//}
if (mListener != null)
mListener.myMethod(Listitem);
} catch (JSONException e) {
e.printStackTrace();
}
}
スクロールリスナーの代わりにアダプタを使用していない理由を教えてください。私はアダプターをお勧めします。なぜなら、この問題は非常に簡単に解決でき、より良い経験を得るからです。 – Neo
アダプターでの使用方法の例を教えてください。 – Moudiz
アダプタの助けを借りて同様の問題解決のために私の作業コードを掲載しました。それはあなたを助けてくれることを願っています:) – Neo