一步步教你为网站开发Android客户端
个HTML。发现,如果totalTrs=3就表示没结果。 //只要有书目结果totalTrs必定大于3,于是 if(totalTrs > 3) for(int i = 0;i totalTrs – 3;i++) { //观察HTML,从第i+2个tr开始,包含的才是我们要的书目信息 //我们从每个tr中选出td标签元素群 Elements tds = trs.get(i + 2).select(td); //得到每个tr中td的个数 int totalTds = tds.size(); //一个临时的HashMap,里面是String-Object键值对 Map //j是一个标识数 for(int j =0;j totalTds ;j++) { switch (j) { //0表示第一个,即书名 //put方法即向map加入一条键值对 //html()方法就得到标签括起来的内容 case 0: map.put(book_title, tds.get(j).html().toString()); break; case 1: //1表示第二个,即作者 map.put(book_author, tds.get(j).html().toString()); break; case 2: //2表示第三个,即出版信息 map.put(book_press, tds.get(j).html().toString()); break; case 3: //3表示第四个,即页数 map.put(book_page, tds.get(j).html().toString()); break; case 4: //4表示第五个,即价格 map.put(book_price, tds.get(j).html().toString()); break; case 5: //5表示第六个,即索取号 map.put(book_noFor, tds.get(j).html().toString()); break; case 6: //6表示第七个,即那段网址 //那段网址td中又包含一个a标签,a标签的href属性的值就是网址 //attr(“href”)可以返回href属性的值 map.put(book_detail, tds.get(j).select(a).attr(href).toString()); break; default: break; } } list.add(map); } list就是我们需要的ArrayList啦 上面所有代码调通后,我们只需一些简单的复制粘贴,就可以放在我们的Android工程中,加上一段简单的代码就可以让ListView显示这个ArrayList。(由于没有任何技术含量,以及该项目暂未上线,此段代码不予以展示,敬请谅解) 接下来,我们一个页面最多只包含10个书目信息,而我们校图书馆,光以”Java”为关键字的书就超过1000本,怎么来显示完全呢,一次显示所有的书肯定不现实。首先数据量太大,手机无法承受;消耗流量过大,用户体验极差。所以,我们就需要ListView能够动态加载数据,即一开始显示十项,如果用户此时拉动ListView显示完十项之后,自动联网,再加载十项(如果还有十项的话),这样的用户体验会非常顺畅。 这个功能的核心是,我们的ListView需要实现OnScrollListener接口。 如果你的ListView所在的Activity继承的是ListActivity的话,只需在extends ListActivity后面加上implements OnScrollListener,这时你需要复写onScroll和onScrollStateChanged。如果你的ListView是从XMLgetView 得到的,你只需为它setOnScrollListener,也会需要你复写onScroll和onScrollStateChanged。 不管你用哪种方法,我们只用修改onScroll方法 @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub //关键的判断代码,这句话表示用户将ListView拉至最底部 if(firstVisibleItem + visibleItemCount == totalItemCount) //你只需要把继续得到下面十项的代码写在这里,就可以实现上述功能了。 //同样再使用一次POST方法,不再赘述 //代码由于同样原因不予以展示,敬请谅解 至此,文章开头的几个知识点已经全部讲解完毕,时间仓促,事物繁忙,可能会影响文章质量,还请大家多多包涵。 如果有问题,可以直接回帖、发论坛信息或通过Email:anliupeinye@gmail.com联系我。 项目成品展示: 看看这些信息是不是就是上面用网页以android为关键字搜索到的?
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)