1. Preview
2. Code
Package android. test; <br/> Import Java. util. arraylist; <br/> Import android. app. activity; <br/> Import android. app. progressdialog; <br/> Import android. OS. bundle; <br/> Import android. OS. handler; <br/> Import android. OS. message; <br/> Import android. widget. abslistview; <br/> Import android. widget. arrayadapter; <br/> Import android. widget. listview; <br/> Import android. widget. abslistview. onscrolllistener; <br/> public class main extends activity implements runnable {<br/> private listview m_listview; <br/> private arraylist <string> m_data = new arraylist <string> (); <br/> private arrayadapter <string> m_adapter; <br/> private progressdialog m_progressdlg; </P> <p> private int m_nlastitem = 0; <br/> private handler m_handler = new handler () {<br/> @ override <br/> Public void handlemessage (Message MSG) {<br/> m_progressdlg.dismiss (); <br/> for (INT I = m_listview.getcount (); I <m_listview.getcount () + 10; ++ I) {<br/> m_data.add ("test _" + I ); <br/>}< br/> m_adapter.policydatasetchanged (); <br/> m_listview.setselection (m_nlastitem-1); <br/>}< br/> }; <br/>/** called when the activity is first created. */<br/> @ override <br/> Public void oncreate (bundle savedinstancestate) {<br/> super. oncreate (savedinstancestate); <br/> setcontentview (R. layout. main); <br/> m_listview = (listview) findviewbyid (R. id. listview1); <br/> for (INT I = 0; I <10; ++ I) {<br/> m_data.add ("test _" + I ); <br/>}< br/> m_adapter = new arrayadapter <string> (this, android. r. layout. simple_list_item_1, m_data); <br/> m_listview.setadapter (m_adapter); <br/> m_listview.setonscrolllistener (New onscrolllistener () {<br/> @ override <br/> Public void onscroll (abslistview view, int firstvisibleitem, int visibleitemcount, int totalitemcount) {<br/> m_nlastitem = firstvisibleitem + visibleitemcount; <br/>}< br/> @ override <br/> Public void onscrollstatechanged (abslistview view, int scrollstate) {<br/> If (m_nlastitem = m_adapter.getcount () & amp; scrollstate = onscrolllistener. scroll_state_idle) {<br/> loadremainingitems (); <br/>}< br/> }); <br/>}< br/> private void loadremainingitems () {<br/> m_progressdlg = progressdialog. show (main. this, "info", "loading data... ", true); <br/> thread t = new thread (main. this); <br/> T. start (); <br/>}< br/> @ override <br/> Public void run () {<br/> try {<br/> thread. sleep (3000); <br/> m_handler.sendemptymessage (0); <br/>} catch (interruptedexception e) {<br/> E. printstacktrace (); <br/>}< br/>}