信息列表功能Control实现,就是航空信息列表Activity java代码实现,如代码清单8-11、8-12所示。在实现过程中需要注意的有以下几点:
1)在初始化控件时,就要根据上一个页面(TicketMainApp.java)传入的参数,进行相应的组装,并与ASP后台进行通信。在开发过程中,通信会遇到一些数据流的问题,如数据读取中断的问题,这需要通过设置延迟连接时长来解决。使用之前在帮助类中创建好的getLongPostHttpURLConnByUrl()方法。
2)要正确解析通信过程中返回的航班信息,本例还是使用DOM方式解析XML数据,读者可采用之前学习过的其他方式解析XML。
3)整个航班数据信息的流向是:将航班信息逐条解析并保存在FlightInfo.java和ClassInfo.java类中,然后再批量保存到List<FlightInfo>、List<ClassInfo>中,接着又解析List<FlightInfo>中的数据保存到ArrayList<HashMap<String,Object>>listItem数组列表中,最后作为ListView的子项数据源传入并显示在界面上。
4)ListView控件的子项显示相对复杂,如果要为子项增加图片或动态添加文字,需要在子项适配器getView(intposition,ViewconvertView,ViewGroupparent)方法中进行相应操作。(www.xing528.com)
5)如何读取ListView子项的值,需要监听ListView.setOnItemClickListener()事件,实现onItemClick()方法,调用ListView.getItemAtPosition(position)对象,取得子项map的值,然后将值保存在FlightInfo.java和ClassInfo.java类中。
6)由于机票信息量较多,我们考虑按照价格或时间排序,这需要使用Comparator比较器,可以调用需要比较字段的compareTo()方法,然后再使用Collections.sort()方法对数据源进行排序。
代码清单8-11 信息列表功能Control实现(第8章\GanaSkyForFlightInfoMain)FlightI nfoMainApp.java(详见本书源代码)
代码清单8-12 信息列表功能Control实现(第8章\GanaSkyForFlightInfoMain)Image AdapterOfFlightList.java(详见本书源代码)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。