PDA

View Full Version : لود اطلاعات با اسکرول در گریدویو



parniaznet
پنج شنبه 24 اردیبهشت 1394, 18:34 عصر
سلام
من یه گرید ویو دارم که به این صورت مقادیر رو بهش میدم :

int save = db.shgoroh("test", "تست");
Onvanha = new String [save];
idha = new int [save];
for (int i = 0; i <save; i++) {

Onvanha[i]= db.ngoroh("test" , "تست", i, 1);
idha[i]= db.n_goroh("test" , "تست", i, 0);
}
adapter = new CustomGrid(getActivity(), Onvanha, idha);
grid=(GridView) fragmentView.findViewById(R.id.gridView1);
grid.setAdapter(adapter);

کلاس گریدویو هم به صورت زیر هست :

public class CustomGrid extends BaseAdapter{
private Context mContext;
private final String[] web;
private final int[] Imageid;

public CustomGrid(Context c,String[] web,int[] Imageid) {
mContext = c;
this.Imageid = Imageid;
this.web = web;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return web.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_ SERVICE);
View row = inflater.inflate(R.layout.grid_item, parent, false);

TextView textView = (TextView) row.findViewById(R.id.textView1);
ImageView imageView = (ImageView)row.findViewById(R.id.imageView1);

String tasvir = "http://********/" + Imageid[position] + ".jpg";

int loader = R.drawable.a74;
ImageLoader imgLoader = new ImageLoader(mContext);
imgLoader.DisplayImage(tasvir, loader, imageView);

textView.setText(web[position]);


return row;
}
}

می خوام اگر اطلاعاتم زیاد بود به جای اینکه همه رو یکجا نمایش بده بیاد 20 تا رو نمایش بده و وقتی کاربر اسکرول کرد به پایین 20 تای بعدی رو لوید کنه و الی اخر

dalmif
پنج شنبه 24 اردیبهشت 1394, 18:48 عصر
سلام دوست عزیز
راه زیر رو امتحان کنید:
اول onScroll رو صدا بزنید و بگید وقتی به آخر رسید این کار رو کنه
اول بقیه اطلاعات رو بگیره و بعد توی Onvanha اضافه کنه و در آخر کد زیر:


adapter.notifyDataSetChanged();

با کد زیر onScroll رو صدا کنید.



mListView.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub

}

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
int lastInScreen = firstVisibleItem + visibleItemCount;
if ((lastInScreen == totalItemCount) && !(loadingMore)) {





}




}
});


loadingMore هم یک بولین هست که اول true هست و وقتی اومدیم اسکرول کردم false میشه و دوباره بعد از نمایش TRUE بشه.
سادست اگه بازم نتونستید بگید تا راهنمایی کنم.
البته آداپتر بنده با شما فرق داره و راهنمایی بالا رو تا حالا تست نکزدم اما شما تست کن ببین چی میشه.
تموم:قلب: