Android编程实现分页加载ListView功能示例
本文实例讲述了Android编程实现分页加载ListView功能。分享给大家供大家参考,具体如下:
packageeoe.listview; importandroid.app.Activity; importandroid.database.Cursor; importandroid.os.Bundle; importandroid.os.Handler; importandroid.os.Message; importandroid.view.View; importandroid.widget.AdapterView; importandroid.widget.ListView; importandroid.widget.ProgressBar; importandroid.widget.TextView; importandroid.widget.AdapterView.OnItemSelectedListener; publicclassMainActivityextendsActivity{ privateListViewlistview; privateProgressBarloadBar; privateTextViewloadText; privateShopAdapteradapter; privateintstart=0;//开始数量 privateintlimit=3;//每页数量 @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); listview=(ListView)findViewById(R.id.main_ListView); loadBar=(ProgressBar)findViewById(R.id.main_loadBar); loadText=(TextView)findViewById(R.id.main_loadText); adapter=newShopAdapter(this); listview.setAdapter(adapter); listview.setOnItemSelectedListener(newOnItemSelectedListener(){ @Override publicvoidonItemSelected(AdapterViewarg0,Viewarg1, intcount,longarg3){ if(adapter.getCount()==count+1){ loadText.setText("下载中..."); loadBar.setVisibility(View.VISIBLE); newThread(mRunnable).start(); } } @Override publicvoidonNothingSelected(AdapterViewarg0){ } }); newThread(mRunnable).start(); } /** *商店列表线程 */ privateRunnablemRunnable=newRunnable(){ publicvoidrun(){ try{ Thread.sleep(1500); mHandler.sendMessage(mHandler.obtainMessage()); } catch(InterruptedExceptione){ //System.out.println("Error-"+e.getMessage()); } } }; HandlermHandler=newHandler(){ publicvoidhandleMessage(Messagemsg){ super.handleMessage(msg); loadHotShop(limit); } }; /** *加载店铺 *@return */ publicvoidloadHotShop(intlimit){ DBLocalServicedb=newDBLocalService(this); Cursorcursor=db.querySQL("select*from"+db.TABLE_SHOP+"limit"+start+","+limit,null); if(cursor.getCount()>0)this.start+=limit; while(cursor.moveToNext()){ Shops=newShop(); s.setId(cursor.getString(cursor.getColumnIndex("id"))); s.setTitle(cursor.getString(cursor.getColumnIndex("title"))); adapter.addShop(s); } loadText.setText(""); loadBar.setVisibility(View.GONE); } }
我们第一个应该看见的就是声明了很多私有的变量,因为这样设置就可以变成只能自己来调用了,这样和其它的不发生冲突。其中我们设置了开始数量和每页数量。我们还要new一个adapter=newShopAdapter(this);这个this就是写的本类,也可以写成类名.this。这个就是看个人的喜好,完事我们开始判断,记住的是,在判断的条件中count是要加1的,这个大家可要记住了我们在写一个run方法,则个就自己来顶了,就不多说了。我们最后写一个loadHotShop()方法,这个方法中要写上你的参数,也就是你想加载几页,就这样,我们分页加载就完成了。
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。