做得很粗糙,代码量也很少,数据通过调用web service得到。

TrainActivity.java用于输入起点站、终点站,并将输入的值传入下一个Activity

package cn.salesuite.layout;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;

/** * @author Tony Shen * */public class TrainActivity extends Activity{

  int REQUEST_CODE=2;  Button queryButton;  //查询按钮

    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {       setTitle("火车班次查询");        super.onCreate(savedInstanceState);        setContentView(R.layout.train);

        queryButton = (Button) findViewById(R.id.query);        queryButton.setOnClickListener(queryListener);    }

 // query按钮监听器    OnClickListener queryListener = new OnClickListener() {       public void onClick(View v) {         CharSequence firstStationValue = ((EditText) findViewById(R.id.firstStation)).getText();         CharSequence lastStationValue = ((EditText) findViewById(R.id.lastStation)).getText();           String temp = firstStationValue.toString() + "," + lastStationValue.toString();          Intent intent = new Intent(TrainActivity.this, ListTrainActivity.class);         intent.setData(Uri.parse(temp));            startActivityForResult(intent, REQUEST_CODE);//以传递参数的方式跳转到下一个Activity       } };

}

ListTrainActivity.java用于显示所有的查询出来的火车航班,通过dom4j来解析xml

package cn.salesuite.layout;

import java.net.URLEncoder;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;

import org.apache.http.client.HttpClient;import org.apache.http.client.ResponseHandler;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.BasicResponseHandler;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.HttpProtocolParams;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;

import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.AdapterView.OnItemClickListener;

/** * @author Tony Shen * */public class ListTrainActivity extends Activity {

 private List<Map<String, Object>> data;   private ListView listView = null;    SimpleAdapter adapter = null;    String responseBody = null;  Intent intent;

    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        setTitle("个人生活助理beta");        super.onCreate(savedInstanceState);        listView = new ListView(this);

        intent=ListTrainActivity.this.getIntent();        String tmp=intent.getDataString();        String[] stations= tmp.split(",");

      try {         responseBody = parseTrain(stations[0], stations[1]);     } catch (Exception e) {           e.printStackTrace();      }

        PrepareData(responseBody);

     // 利用系统的layout显示一项        SimpleAdapter adapter = new SimpleAdapter(this, data,                R.layout.train_row, new String[] { "TrainCode", "FirstStation","LastStation", "StartTime", "ArriveTime" },              new int[] {R.id.text1, R.id.text2, R.id.text3, R.id.text4,R.id.text5 });      listView.setAdapter(adapter);     setContentView(listView);

       OnItemClickListener listener = new OnItemClickListener() {           public void onItemClick(AdapterView<?> parent, View view, int position,                 long id) {                setTitle(parent.getItemAtPosition(position).toString());          }     };        listView.setOnItemClickListener(listener);    }

   protected String parseTrain(String firstStation, String lastStation)          throws Exception {        String url = "/WebServices/TrainTimeWebService.asmx/getStationAndTimeByStationName";       String host = "www.webxml.com.cn";     String param = "StartStation="                + URLEncoder.encode(firstStation, "utf-8") + "&ArriveStation="             + URLEncoder.encode(lastStation, "utf-8") + "&userID=";

      HttpClient httpclient = new DefaultHttpClient();     httpclient.getParams().setParameter(              HttpProtocolParams.HTTP_CONTENT_CHARSET, "UTF-8");

        HttpGet httpget = new HttpGet("http://" + host + url + "?" + param);

       ResponseHandler<String> responseHandler = new BasicResponseHandler();      return httpclient.execute(httpget, responseHandler);  }

   private void PrepareData(String responseBody) {       data = new ArrayList<Map<String, Object>>();     Map<String, Object> item;       Document document;        try {         document = DocumentHelper.parseText(responseBody);           Element root = document.getRootElement();            Iterator it = root.element("diffgram").element("getStationAndTime").elementIterator("TimeTable");          while (it.hasNext()) {                Element info = (Element) it.next();              item = new HashMap<String, Object>();              item.put("TrainCode", info.elementText("TrainCode"));             item.put("FirstStation", info.elementText("FirstStation"));               item.put("LastStation", info.elementText("LastStation"));             item.put("StartTime", info.elementText("StartTime"));             item.put("ArriveTime", info.elementText("ArriveTime"));               data.add(item);           }     } catch (DocumentException e) {           e.printStackTrace();      } }}

飞机航班的做法很类似,下面上效果图

[img]http://dl.iteye.com/upload/attachment/206225/37084377-4208-3b55-8716-a2241dfb1ffb.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/206227/e734a2dc-ccf0-3429-9030-d276267dd05d.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/206229/a0a9c815-e42d-37c9-b33c-86504b265bcf.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/206231/21a0c265-b81a-381f-a4f7-65fb4bd9afe4.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/206233/b050f450-0343-3d5d-bd51-4673d1b67bcd.jpg[/img]

做了一个可以查询飞机航班、火车班次的小应用相关推荐

  1. 用Python做了一个法律查询小工具,非常好用

    用Python做了一个法律查询小工具,非常好用 效果展示 准备工作 主要代码 哈喽兄弟,今天给大家分享一个Python tkinter制作法律查询小工具. 光爬虫大家也只能自己用用,就算打包了exe, ...

  2. 摸鱼时间做了一个外卖领红包 h5,外卖红包小程序

    前段时间天天在抖音刷到 [每天都点外卖,竟然不知道这个隐藏功能] 推广视频,基于程序员明锐的嗅觉,发现里面有利可寻... 于是自己整个了一个简单的美团饿了吗领外卖红包的,在公众号.微信群发了几次,没想 ...

  3. 一个用于查询自然码辅码的小程序

    笔者是自然码的爱好者,前段时间整理出并且格式化了自然码的辅码码表,使其适用于手心输入法,有兴趣的同好可以回顾一下.关于手心输入法配置完整自然码辅码_Copper的博客-CSDN博客_自然码辅码http ...

  4. 获取国内飞机航班时刻表数据

    WebXml.com.cn 国内飞机航班时刻表 WEB 服务提供:通过出发城市和到达城市查询飞机航班.出发和到达时间.飞行周期.航空公司.机型等信息.国内飞机航班时刻表 WEB 服务提供的飞机航班时刻 ...

  5. 课程设计:飞机航班信息查询系统

    题目名称 一.实验内容 [问题描述] 对飞机航班信息进行排序和查询.航班信息包括:航班号,起点,终点,航班日期(周一到周日,分别用1,2...7数字表示),起飞时间,到达时间,机型,票价. 以线性表作 ...

  6. Java、JSP飞机航班信息查询系统

    技术:Java.JSP等 摘要:随着社会的进步,人们生活水准的呈上升趋势,出行选择飞机的人数越来越多,国内国际的航班的增加,用户对航班查询订票的迫切程度越来越高,所以要开发一个适合大众的,方便操作,简 ...

  7. java毕业设计飞机航班信息查询系统源码+系统+数据库+lw文档+调试运行

    java毕业设计飞机航班信息查询系统源码+系统+数据库+lw文档+调试运行 注意:该项目只展示部分功能,如需了解,文末获取源码地址. 临近学期结束,还是毕业设计,你还在做java程序.网络编程.课程设 ...

  8. java毕业设计飞机航班信息查询系统演示视频2021源码+系统+数据库+lw文档+调试运行

    java毕业设计飞机航班信息查询系统演示视频2021源码+系统+数据库+lw文档+调试运行 注意:该项目只展示部分功能,如需了解,文末获取源码地址. 临近学期结束,还是毕业设计,你还在做java程序. ...

  9. 用java编码图书查询系统_用java做的一个图书管理系统的源代码

    <用java做的一个图书管理系统的源代码>由会员分享,可在线阅读,更多相关<用java做的一个图书管理系统的源代码(42页珍藏版)>请在人人文库网上搜索. 1.用java做的一 ...

最新文章

  1. 如何用简单易懂的例子解释隐马尔可夫模型?
  2. 社交产品后端架构设计--转载
  3. 【2019年07月08日】A股最便宜的股票
  4. matlab的傅里叶变换
  5. duilib消息机制的介绍
  6. jquery 左右移动 以及使用layer.js弹出框呈现在页面上
  7. 山东财经大学计算机体系结构考试题,2016年山东财经大学计算机科学与技术学院数据库系统原理与程序设计复试笔试仿真模拟题...
  8. 设置源ARM中断处理_S3C2440
  9. Java 应用Nginx+ffmpeg实现海康视频web直播
  10. PyQt5_pyqtgraph股票SAR指标
  11. WebGoat安装及使用说明
  12. web前端学习路线-20个真实web开发项目集合
  13. 记录徒手解决cranberry病毒的过程
  14. 计算机听评课会议记录,研修评课议课会议记录
  15. python在每个字符后加上逗号_Python将逗号添加到数字字符串中
  16. CSDN-MarkDown编辑器的姿势大全
  17. Oracle中的emp、dept、bonus及salgrade表的新建及MySQL中的三种注释形式
  18. 软件测试 毕业设计任务书,软件测试任务书
  19. 0521 HTML基础
  20. 这是目前最快的 Java 框架,300个框架中排名第一,真香

热门文章

  1. 能Ping通外网但就是不能打开所有网页的解决办法
  2. python爬取链家新房_Python爬虫实战:爬取链家网二手房数据
  3. 使用Dev C++运行c语言代码时碰到Failed to executeC:\c++.cpp: Error 0 :操作成功完成
  4. k30s刷鸿蒙系统,RedmiK30S或于10月27日发布:今年最后一款骁龙865手机
  5. Oracle数据库练习题及答案大全(包含数据库脚本)
  6. CentOS7 ifup 和 ifdown
  7. 安装java进度条不动了_提示安装过程出错怎么处理啊?安装offi – 手机爱问
  8. 《王者荣耀》发布的绝悟 AI,到底有多强...
  9. python 实现图片添加文字水印
  10. 强化学习训练Agent走直线