ورود

View Full Version : لود اطلاعات از اینترنت(جیسون) در Listview در هنگام اسکرول



malloc
یک شنبه 17 خرداد 1394, 19:43 عصر
سلام به دوستان اندروید کار ..... بچه ها مهمونم از گروه بغلی اومدم لدفا کمک کنید :لبخند:

من یه لیست ویو دارم که با توابع مشخصی که تو اینترنت هست از آدرس http://view.allaameh.ir/jsontest.aspx جیسون میخونم و توی Listview نشون میدم

اون صفحه 10 تا رو لیست میکنه .. ولی خوب اگه کاربر بیشتر از 10 تا خواست چی ؟؟؟؟ حالا اگه من بخوام همه اطلاعاتمو یجا بیاریم که خیلی سنگین میشه حدود 1500 تا رکورد هست ....

بهترین روش همین لود شدن اطلاعات در هنگام اسکرول هست .... حالا دوستان نمونه خارجی یا داخلی یا لینک کمکی و آموزشی و ..... هرچی تو این زمینه داره بزاره که کارم راه بیافته ... دمتون گرم...

اگه کسی متوجه نشد بگه بیشتر توضیح بدم

hesam67_b
دوشنبه 18 خرداد 1394, 09:31 صبح
با سلام.
کافیه در سمت سرور limit و start تعریف کنی و از این طرف با این کد درخواست بفرستی.
این کد وقتی اسکرول به انتها رسید درخواست میده و اطلاعات جدید رو دریافت میکنه و ...

list.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}


@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// Log.i("onScroll", "firstVisibleItem: " + firstVisibleItem + " | visibleItemCount: " + visibleItemCount + " | totalItemCount: " + totalItemCount);
int lastInScreen = firstVisibleItem + visibleItemCount;
//is the bottom item visible & not loading more already? Load more !
if ((lastInScreen == totalItemCount) && listMediaNextPage != null) {
Log.i("listUsersInfoNextPage", listMediaNextPage);

getList();
listMediaNextPage = null;
}

}
});

hamedg1366
دوشنبه 18 خرداد 1394, 17:40 عصر
با سلام.
کافیه در سمت سرور limit و start تعریف کنی و از این طرف با این کد درخواست بفرستی.
این کد وقتی اسکرول به انتها رسید درخواست میده و اطلاعات جدید رو دریافت میکنه و ...

list.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}


@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// Log.i("onScroll", "firstVisibleItem: " + firstVisibleItem + " | visibleItemCount: " + visibleItemCount + " | totalItemCount: " + totalItemCount);
int lastInScreen = firstVisibleItem + visibleItemCount;
//is the bottom item visible & not loading more already? Load more !
if ((lastInScreen == totalItemCount) && listMediaNextPage != null) {
Log.i("listUsersInfoNextPage", listMediaNextPage);

getList();
listMediaNextPage = null;
}

}
});



دوست عزیز من هنوز امتحان نکردم کدتون رو ، اما واقعا حیفم اومد فقط دکمه تشکر رو بزنم ... من از راه های طولانی دیگه ای برای این کار استفاده میکردم ؛ این روش خیلی بهتره

hesam67_b
دوشنبه 18 خرداد 1394, 18:02 عصر
دوست عزیز من هنوز امتحان نکردم کدتون رو ، اما واقعا حیفم اومد فقط دکمه تشکر رو بزنم ... من از راه های طولانی دیگه ای برای این کار استفاده میکردم ؛ این روش خیلی بهتره
من تست کردم برای سرور. مشکلی نداره.
خواهش میکنم.
موفق باشید.