基于Android平台开发生活小助手-毕业论文 - 图文(7)

2019-06-11 20:42

正文

}

}

imageView.setScaleType(ImageView.ScaleType.FIT_XY); return imageView;

5.3 列车时刻功能模块

在主界面点击列车按钮后进入列车界面。列车功能又分为三大模块:首页、保存和提醒。

首页模块实现了站站查询和车次查询。输入始发站和终点站,点击站站查询,通过HTTP POST请求访问Web Service的获取信息,对于获得数据流通过SAX解析获得有用的信息,具体实现方法在3.7节和3.8节已经介绍。将获得有用信息在列表中显示,长按某车次信息可以实现车次信息存储。输入车次信息,点击车次查询,通过SOAP协议访问web service的getWeatherbyCityName方法获得有用信息,具体实现方法参照3.6节。

保存模块的功能是显示存储的车次信息,便于在无网络的情况下查询信息。长按列表条目会跳出“是否删除”对话框,点击“是”可以实现删除功能。

提醒模块主要是告诉用户订票电话、网站和客服电话信息。 三个主要界面如下:

1.“首页”实现的功能图如下:

图5-9 首页 图5-10保存 图5-11 提醒

27

正文

图5-12 首页功能图

2. “保存”实现的功能图如下:

图5-13 保存功能图

28

正文

核心代码:

1. 通过TabHost控件实现不同页面切换,代码如下: @Override

protected void onCreate(Bundle savedInstanceState) {

inflater=LayoutInflater.from(this); true);

//我界面

}

//radio监听事件

LocalActivityManager localAcManager=new LocalActivityManager(TrainMainActivity.this,

localAcManager.dispatchCreate(savedInstanceState); tabHost=(TabHost)findViewById(android.R.id.tabhost);

//如果通过findViewById得到TabHost 一定要调用 TabHost.setup();

tabHost.setup(localAcManager);

tabHost.addTab(tabHost.newTabSpec(\

setContent(new

Intent(TrainMainActivity.this,TrainHomeActivity.class)));//首页界面

tabHost.addTab(tabHost.newTabSpec(\

setContent(new

Intent(TrainMainActivity.this,TrainCollectActivity.class)));//推荐界面

tabHost.addTab(tabHost.newTabSpec(\

setContent(new Intent(TrainMainActivity.this,TrainSettingActivity.class)));

radioGroup=(RadioGroup)findViewById(R.id.train_tab_group);

radioGroup.setOnCheckedChangeListener( checkedChangeListener );

private OnCheckedChangeListener checkedChangeListener = new OnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

// TODO Auto-generated method stub switch (checkedId) { case R.id.train_home:

break;

tabHost.setCurrentTabByTag(\如果选中推荐 break;

case R.id.train_collect:

tabHost.setCurrentTabByTag(\//如果选中首页

case R.id.train_setting:

29

正文

};

}

}

tabHost.setCurrentTabByTag(\ //如果选中我 break;

2.通过站站查询获得列车信息,代码如下:

if (v.getId()==R.id.stationbutton) {

public static List readXML(InputStream inputStream){

}

startstation=Startstation.getText().toString(); endstation=Endstation.getText().toString(); TrainHttppost();

Log.e(\if(inputStream==null){

Toast.makeText(TrainHomeActivity.this, \查询失败\List trainMessagaes=new ArrayList(); trainMessagaes= readXML(inputStream); Bundle bundle=new Bundle(); bundle.putParcelableArrayList(\

(ArrayList

extends

Parcelable>)

}else {

trainMessagaes);

Intent intent =new Intent(TrainHomeActivity.this, TrainSearchActivity.class); intent.putExtras(bundle); startActivity(intent);

List train = null; try {

//创建SAXParserFactory对象

SAXParserFactory spf = SAXParserFactory.newInstance(); //返回一个SAXParser解析器

SAXParser parser = spf.newSAXParser();

//根据SAXParser解析器获取XMLREADE事件源 XMLReader xmlReader=parser.getXMLReader(); //实例化一个DefaultHandler对象 TrainHandler handler=new TrainHandler(); //设置处理器

xmlReader.setContentHandler(handler);

30

正文

}

}

//解析文档

xmlReader.parse(new InputSource(inputStream)); train=handler.trains; // TODO: handle exception e.printStackTrace();

} catch (Exception e) {

return train;

protected void TrainHttppost() {

// TODO Auto-generated method stub /** 获取天气的WebServiceURL */

String url = \

+ \

//请求参数

//String requestStr=\+ startstation + \endstation Log.e(\正在查询\

try {

//使用HTTPPOST=对象提交数据 HttpPost httpRequest=new HttpPost(url); //超时设置

HttpParams params=new BasicHttpParams(); //从连接池获取连接的超时时间

ConnManagerParams.setTimeout(params, 1000); //通过网路与服务器建立连接的超时时间

HttpConnectionParams.setConnectionTimeout(params, 3000); //读响应数据的超时间

HttpConnectionParams.setSoTimeout(params, 5000); //设计请求参数

httpRequest.setParams(params); //传递请求参数

List paramsList=

new ArrayList();

paramsList.add(new BasicNameValuePair(\Log.e(\始发站\

paramsList.add(new BasicNameValuePair(\

31

+\


基于Android平台开发生活小助手-毕业论文 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:商场管理制度和方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: