How to implement pagination in Android listview -
i working android app, in need show listview items. there more elements show in listview.
i decided implement pagination . tried searching in google not find related information.
can me please..
implementing pagination simple.
take @ this...
public class mainactivity extends activity { private listview listview; private textview title; private arraylist<string> data; arrayadapter<string> sd; public int total_list_items = 1030; public int num_items_page = 100; private int noofbtns; private button[] btns; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); listview = (listview)findviewbyid(r.id.list); title = (textview)findviewbyid(r.id.title); btnfooter(); data = new arraylist<string>(); /* * arraylist data contains list items */ for(int i=0;i<total_list_items;i++) { data.add("this item "+(i+1)); } loadlist(0); checkbtnbackgroud(0); } private void btnfooter() { int val = total_list_items%num_items_page; val = val==0?0:1; noofbtns=total_list_items/num_items_page+val; linearlayout ll = (linearlayout)findviewbyid(r.id.btnlay); btns = new button[noofbtns]; for(int i=0;i<noofbtns;i++) { btns[i] = new button(this); btns[i].setbackgroundcolor(getresources().getcolor(android.r.color.transparent)); btns[i].settext(""+(i+1)); linearlayout.layoutparams lp = new linearlayout.layoutparams(layoutparams.wrap_content, layoutparams.wrap_content); ll.addview(btns[i], lp); final int j = i; btns[j].setonclicklistener(new onclicklistener() { public void onclick(view v) { loadlist(j); checkbtnbackgroud(j); } }); } } /** * method checking button backgrounds */ private void checkbtnbackgroud(int index) { title.settext("page "+(index+1)+" of "+noofbtns); for(int i=0;i<noofbtns;i++) { if(i==index) { btns[index].setbackgrounddrawable(getresources().getdrawable(r.drawable.box_green)); btns[i].settextcolor(getresources().getcolor(android.r.color.white)); } else { btns[i].setbackgroundcolor(getresources().getcolor(android.r.color.transparent)); btns[i].settextcolor(getresources().getcolor(android.r.color.black)); } } } /** * method loading data in listview * @param number */ private void loadlist(int number) { arraylist<string> sort = new arraylist<string>(); int start = number * num_items_page; for(int i=start;i<(start)+num_items_page;i++) { if(i<data.size()) { sort.add(data.get(i)); } else { break; } } sd = new arrayadapter<string>(this, android.r.layout.simple_list_item_1, sort); listview.setadapter(sd); } }
xml file:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <textview android:id="@+id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textcolor="@android:color/black" android:gravity="center" android:textsize="16sp" android:background="@android:color/darker_gray" android:padding="10dp"/> <listview android:id="@+id/list" android:divider="#000" android:dividerheight="1dp" android:cachecolorhint="#00000000" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:fadingedge="none"/> <horizontalscrollview android:layout_width="fill_parent" android:layout_height="wrap_content"> <linearlayout android:id="@+id/btnlay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > </linearlayout> </horizontalscrollview> </linearlayout>
for more clear explanation , source code visit links
Comments
Post a Comment