2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 基于Android手机平台的自助旅游系统的设计与实现(Android studio毕业设计 Android课程设计)

基于Android手机平台的自助旅游系统的设计与实现(Android studio毕业设计 Android课程设计)

时间:2021-07-03 08:55:49

相关推荐

基于Android手机平台的自助旅游系统的设计与实现(Android studio毕业设计 Android课程设计)

博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;

🍅文章末尾获取源码下载方式🍅

功能演示

1:后台演示

2:客户端演示

一、项目介绍

1:注册模块,用户在使用软件前需要进行用户信息的注册

2:用户登录:用户通过自己的注册信息进行软件的登录

3:景点查询:该子系统能提供对旅游景点位置查询,在地图上标识经纬度值,能对当前及未来三天进行天气预报,能查询两地点间的行走乘车路径以及周边住宿、餐饮、娱乐等相关信息,能在街道、卫星和交通三种模式间对地图进行转换。

4:GPS定位:该子系统能获取旅游者当前所在的位置信息,能对设定的区域在进入或离开时予以音乐提醒,能将旅游者所走过的路径、平均速度等信息保存至数据库,供随时查看并动画回放。

5:拍照上传:该子系统能随时进行拍照并保存至SD存储卡上,能以画廊的形式对照片进行预览,能及时上传照片至网络中,与朋友分享旅游途中的美景和趣事。本文主要从需求分析、系统设计、编码实现和测试发布方面,对自助旅游系统进行了充分的分析和实现。旅游者通过下载安装该软件,便可为其提供服务

6:个人信息:用户可以浏览个人信息,以及对密码进行修改;

二、运行环境

1:客户端使用Android stuido进行开发;

2:服务端后台使用Myeclipse进行开发;

3:mysql数据库进行数据存储;

4:需要jdk1.7以上

5:使用雷电模拟器或者Androidstuio自带的模拟器进行运行

三、使用技术

总体设计逻辑和思路:

1:先设计数据库表文件

2:写服务端jsp页面以及写api接口给客户端提供数据

3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示

4:进行客户端页面的开发;

5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示

移动端:

1:使用android原生控件以及xml布局文件来完成界面的显示

2:使用java代码完成功能的数据和逻辑交互

3:使用http网络请求完成数据的请求;

4:使用json数据解析完成客户端数据的回调和显示

服务端后台:

1:使用mysql完成数据的存储

2:使用jdbc完成数据库和代码的逻辑交互

3:使用jsp完成网页数据的显示

4:使用java代码完成api接口的编写以及以及数据的回调

四、数据库设计

/*Navicat MySQL Data TransferSource Server : mydataSource Server Version : 50537Source Host : localhost:3306Source Database : tourismlifedbTarget Server Type : MYSQLTarget Server Version : 50537File Encoding : 65001Date: -03-07 10:25:21*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for addresstb-- ----------------------------DROP TABLE IF EXISTS `addresstb`;CREATE TABLE `addresstb` (`trackId` int(50) NOT NULL AUTO_INCREMENT,`trackUserId` varchar(11) DEFAULT NULL,`trackUserName` varchar(255) DEFAULT NULL,`trackLongitude` varchar(255) DEFAULT NULL,`trackLatitude` varchar(255) DEFAULT NULL,`trackTime` varchar(100) DEFAULT NULL,PRIMARY KEY (`trackId`)) ENGINE=InnoDB AUTO_INCREMENT=2809 DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for scenerymsg-- ----------------------------DROP TABLE IF EXISTS `scenerymsg`;CREATE TABLE `scenerymsg` (`sceneryId` int(50) NOT NULL AUTO_INCREMENT,`sceneryTitle` varchar(255) DEFAULT NULL,`sceneryMoney` varchar(255) DEFAULT NULL,`sceneryCoordinate` varchar(255) DEFAULT NULL,`sceneryAddress` varchar(255) DEFAULT NULL,`sceneryMessage` varchar(1500) DEFAULT NULL,`sceneryTime` varchar(100) DEFAULT NULL,`sceneryImage` varchar(255) DEFAULT NULL,PRIMARY KEY (`sceneryId`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of scenerymsg-- ----------------------------INSERT INTO `scenerymsg` VALUES ('2', '秦始皇兵马俑博物馆', '150', '108.92279,34.241026', '西安市临潼区', '秦始皇兵马俑博物馆,又称兵马俑、秦兵马俑,是秦始皇陵的陪葬坑,和秦始皇帝陵博物馆为同一个景点,采用一票制。秦始皇兵马俑素有世界第八大奇迹之称,这里出土的一千多个士兵陶俑,形象各不相同,神态生动,是中国古代雕塑艺术史上的一颗明珠,被誉为“二十世纪考古史上的伟大发现之一”。', '-02-11 11:21', '1505283939521.jpg');INSERT INTO `scenerymsg` VALUES ('3', '大明宫 (唐朝皇宫)', '50', '108.964332,34.282028', '西安市新城区', '大明宫地处长安城北郭城外,北靠皇家禁苑、渭水之滨,南接长安城北郭,西接宫城的东北隅。一条象征龙脉的山原自长安西南部的樊川北走,横亘六十里,到了这里,恰为“龙首”,因地势高亢,人称龙首原。龙首原本为隋大兴城北的三九临射之地,内有观德殿,是举行射礼的地方,唐因袭这一功用。', '-02-11 11:21', '1501153409556.jpg');INSERT INTO `scenerymsg` VALUES ('4', '大雁塔 (西安大慈恩寺佛塔)', '40', '108.964045,34.221334', '西安市曲江新区', '大雁塔位于唐长安城晋昌坊(今陕西省西安市南)的大慈恩寺内,又名“慈恩寺塔”。唐永徽三年(652年),玄奘为保存由天竺经丝绸之路带回长安的经卷佛像主持修建了大雁塔,最初五层,后加盖至九层,再后层数和高度又有数次变更,最后固定为今天所看到的七层塔身,通高64.517米,底层边长25.5米。', '-02-11 11:21', '1505283939114.jpg');INSERT INTO `scenerymsg` VALUES ('5', '西安城墙', '54', '108.946307,34.248831', '西安市碑林区', '现存城墙为明代建筑,全长13.7千米,始建于明太祖洪武三年(1370年),洪武十一年(1378年)竣工,是在明太祖“高筑墙、广积粮、缓称王”的政策指导下,在隋、唐皇城的基础上建成的,当时是西安的府城。明太祖朱元璋将次子朱樉册封为秦王,藩封、府治同在一城,因而城池规模宏大坚固,再加上后来明清屡次修葺、增建,至今保存完好。', '-02-11 11:21', '3c6d55fbb2fb4316b6ba1cb429a4462308f7d353.jpg');-- ------------------------------ Table structure for topicmsg-- ----------------------------DROP TABLE IF EXISTS `topicmsg`;CREATE TABLE `topicmsg` (`topicId` int(50) NOT NULL AUTO_INCREMENT,`topicMessage` varchar(255) DEFAULT NULL,`topicImg` varchar(1500) DEFAULT NULL,`topicTime` varchar(100) DEFAULT NULL,`topicUserId` varchar(100) DEFAULT NULL,`topicUserName` varchar(255) DEFAULT NULL,PRIMARY KEY (`topicId`)) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;-- ------------------------------ Records of topicmsg-- ----------------------------INSERT INTO `topicmsg` VALUES ('18', '你好啊', 'timg-6.jpeg,timg-8.jpeg', '-02-23 13:50', '106', '小丸子');INSERT INTO `topicmsg` VALUES ('22', '我的分享', 'u=3627469918,1717382061&fm=26&gp=0.jpg', '-02-23 14:14', '106', '小丸子');INSERT INTO `topicmsg` VALUES ('23', 'pony', 'timg-4.jpeg', '-02-23 14:15', '106', '小丸子');INSERT INTO `topicmsg` VALUES ('24', '111', '1019152302.jpg', '-03-07 10:23', '106', '小丸子');-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`userId` int(255) NOT NULL AUTO_INCREMENT,`userName` varchar(200) CHARACTER SET utf8 NOT NULL,`userPhone` varchar(100) CHARACTER SET utf8 NOT NULL,`userPswd` varchar(200) CHARACTER SET utf8 NOT NULL,`userTime` varchar(300) CHARACTER SET utf8 NOT NULL,PRIMARY KEY (`userId`)) ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=latin1;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('106', '小丸子', '15249249696', '123456', '-02-11 11:21');

五、部分代码

1:景点代码

public class SceneryMessageActivity extends BaseActivity implements AMapLocationListener, LocationSource {SceneryModel sceneryModel;float distance;// titleprivate TextView mTvTitle;// 返回private ImageView mIvBack;private TextView mtvMessagetitle;private TextView mtvShopPrice;private TextView mtvType;private TextView mtvcontent;private ImageView guide_image;private TextView mtvShopPriceTip;private Button mbtnPay;private ScrollView mslView;private TextView mIvStu;private AmapTTSController amapTTSController;private LocationSource.OnLocationChangedListener mListener;private AMapLocationClient mlocationClient;private AMapLocationClientOption mLocationOption;// 定位返回的数据信息private AMapLocation aMapLocationMessage;private AMap aMap;private MapView mapView;private MediaPlayer mediaPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_shop_message);mapView = (MapView) findViewById(R.id.mMapView);mapView.onCreate(savedInstanceState);// 此方法必须重写initWidget();initData();}@Overridepublic void initWidget() {if (aMap == null) {aMap = mapView.getMap();setUpMap();}mtvShopPriceTip = (TextView) findViewById(R.id.mtvShopPriceTip);mIvStu = (TextView) findViewById(R.id.mIvStu);mslView = (ScrollView) findViewById(R.id.mslView);mbtnPay = (Button) findViewById(R.id.mbtnPay);mbtnPay.setOnClickListener(this);mtvShopPrice = (TextView) findViewById(R.id.mtvShopPrice);mtvShopPrice.setOnClickListener(this);guide_image = (ImageView) findViewById(R.id.guide_image);mtvType = (TextView) findViewById(R.id.mtvType);mtvMessagetitle = (TextView) findViewById(R.id.mtvMessagetitle);mtvcontent = (TextView) findViewById(R.id.mtvcontent);mIvBack = (ImageView) findViewById(R.id.mIvBack);mTvTitle = (TextView) findViewById(R.id.mTvTitle);mTvTitle.setText("景区详情");mIvBack.setVisibility(View.VISIBLE);mIvBack.setOnClickListener(this);mIvStu.setVisibility(View.GONE);mIvStu.setOnClickListener(this);}/*** 设置一些amap的属性*/private void setUpMap() {aMap.setLocationSource(this);// 设置定位监听aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false// 设置定位的类型为定位模式 ,可以由定位、跟随或地图根据面向方向旋转几种aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.mIvBack:SceneryMessageActivity.this.finish();break;case R.id.mbtnPay:break;}}@SuppressLint("SetTextI18n")@Overridepublic void initData() {sceneryModel = (SceneryModel) this.getIntent().getSerializableExtra("msg");mtvMessagetitle.setText(sceneryModel.getSceneryTitle());mtvShopPrice.setText("票价:" + sceneryModel.getSceneryMoney() + "元/张");mtvType.setText("地址:" + sceneryModel.getSceneryAddress());mtvcontent.setText(" " + sceneryModel.getSceneryMessage());if (!TextUtils.isEmpty(sceneryModel.getSceneryImage())) {Picasso.with(this).load(Consts.URL_IMAGE + sceneryModel.getSceneryImage()).placeholder(R.drawable.default_drawable_show_pictrue).into(guide_image);}mbtnPay.setText("旅游景区");mlocationClient = new AMapLocationClient(this);// 初始化定位参数mLocationOption = new AMapLocationClientOption();// 设置定位监听mlocationClient.setLocationListener(this);// 设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);// 设置定位间隔,单位毫秒,默认为2000msmLocationOption.setInterval(2000);mLocationOption.setOnceLocation(true);// 设置定位参数mlocationClient.setLocationOption(mLocationOption);// 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,// 注意设置合适的定位时间的间隔(最小间隔支持为1000ms),并且在合适时间调用stopLocation()方法来取消定位请求// 在定位结束后,在合适的生命周期调用onDestroy()方法// 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除// 启动定位mlocationClient.startLocation();}boolean addDataFlag = true;@Overridepublic void onLocationChanged(AMapLocation amapLocation) {if (amapLocation != null) {if (amapLocation.getErrorCode() == 0) {// 定位成功回调信息,设置相关消息amapLocation.getLocationType();// 获取当前定位结果来源,如网络定位结果,详见定位类型表amapLocation.getLatitude();// 获取纬度amapLocation.getLongitude();// 获取经度amapLocation.getAccuracy();// 获取精度信息LatLng my = new LatLng(amapLocation.getLatitude(), amapLocation.getLongitude());LatLng end = new LatLng(Double.valueOf(sceneryModel.getSceneryCoordinate().split(",")[1]), Double.valueOf(sceneryModel.getSceneryCoordinate().split(",")[0]));distance = AMapUtils.calculateLineDistance(my, end);DecimalFormat df = new DecimalFormat("#.00");//mtvShopPriceTip.setText("距离景区:" + df.format(distance * 0.001) + "km");mtvShopPriceTip.setText("距离景区:" + formatDouble5(distance * 0.001) + "km");//if(addDataFlag){//addAddress(false,amapLocation);//}if (distance > 500&&distance< 550) {openAssetMusics();}else if (distance < 500&&distance> 450){openAssetMusics();}Log.i("pony_log", "距离和位置:" + amapLocation.getAddress() + ",distance:" + distance);//Log.i("pony_log", "获取定位数据:" + amapLocation.getLatitude() + "," + amapLocation.getLongitude());} else {// 显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。Log.e("AmapError", "location Error, ErrCode:" + amapLocation.getErrorCode() + ", errInfo:" + amapLocation.getErrorInfo());}}}public static String formatDouble5(double d) {return String.format("%.2f", d);}/*** 方法必须重写*/@Overrideprotected void onResume() {super.onResume();mapView.onResume();}/*** 方法必须重写*/@Overridepublic void onPause() {super.onPause();addDataFlag = false;mapView.onPause();// deactivate();}/*** 方法必须重写*/@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);mapView.onSaveInstanceState(outState);}/*** 方法必须重写*/@Overridepublic void onDestroy() {super.onDestroy();mapView.onDestroy();// if (null != mlocationClient) {// mlocationClient.onDestroy();// }}/*** 激活定位*/@Overridepublic void activate(OnLocationChangedListener listener) {mListener = listener;if (mlocationClient == null) {mlocationClient = new AMapLocationClient(this);mLocationOption = new AMapLocationClientOption();//// 设置定位监听mlocationClient.setLocationListener(this);//// 设置为高精度定位模式mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);// 设置定位参数//mlocationClient.setLocationOption(mLocationOption);// 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,// 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求// 在定位结束后,在合适的生命周期调用onDestroy()方法// 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除//获取一次定位结果://该方法默认为false。mLocationOption.setOnceLocation(true);//获取最近3s内精度最高的一次定位结果://设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。mLocationOption.setOnceLocationLatest(true);mlocationClient.startLocation();}}/*** 停止定位*/@Overridepublic void deactivate() {mListener = null;if (mlocationClient != null) {mlocationClient.stopLocation();mlocationClient.onDestroy();}mlocationClient = null;}private void openAssetMusics() {try {// 播放 assets/a2.mp3 音乐文件AssetFileDescriptor fd = this.getAssets().openFd("tipmusic.mp3");mediaPlayer = new MediaPlayer();mediaPlayer.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());mediaPlayer.prepare();mediaPlayer.start();} catch (IOException e) {e.printStackTrace();}}private void addAddress(boolean isShow, AMapLocation amapLocation) {AjaxParams params = new AjaxParams();params.put("action_flag", "addAddress");params.put("trackUserId", MemberUserUtils.getUid(this) + "");params.put("trackUserName", MemberUserUtils.getName(this));params.put("trackLongitude", amapLocation.getLongitude()+"");params.put("trackLatitude", amapLocation.getLatitude()+"");httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultState, isShow, "正在更新...");}@Overrideprotected void callBackSuccess(ResponseEntry entry, int actionId) {super.callBackSuccess(entry, actionId);switch (actionId) {case Consts.actionId.resultState:Log.i("pony_log", "坐标采集返回成功");break;default:break;}}}

2:线路搜索代码

public class SearchActivity extends BaseActivity implements INaviInfoCallback {// titleprivate TextView mTvTitle;// 返回private ImageView mIvBack;private AutoCompleteTextView metNameStart;private AutoCompleteTextView metNameEnd;private ListView mListMessageStation;private List<Tip> mTipListStart;private List<Tip> mTipListEnd;;private boolean startFlag = true;private LatLonPoint startLatLonPoint;private LatLonPoint endLatLonPoint;private String stationNameStart;private String stationNameEnd;private TextView mtvNavi;DialogMsg dialogMsg;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_fragment_bus);initWidget();initData();}@Overridepublic void initWidget() {dialogMsg = new DialogMsg(this);dialogMsg.Set_Msg("请选择路线类型");dialogMsg.submit_ok().setText("驾车");dialogMsg.submit_no().setText("公交");dialogMsg.submit_no().setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialogMsg.Close();Intent mrlOrder = new Intent(SearchActivity.this, RoutePOIActivity.class);mrlOrder.putExtra("message_latitude",startLatLonPoint.getLatitude());mrlOrder.putExtra("message_longitude",startLatLonPoint.getLongitude());mrlOrder.putExtra("message_latitude_station",endLatLonPoint.getLatitude());mrlOrder.putExtra("message_longitude_station",endLatLonPoint.getLongitude());mrlOrder.putExtra("title_message", "公交导航");SearchActivity.this.startActivity(mrlOrder);}});dialogMsg.submit_ok().setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialogMsg.Close();LatLng startMsg = new LatLng(startLatLonPoint.getLatitude(), startLatLonPoint.getLongitude());//北京站LatLng endMsg = new LatLng(endLatLonPoint.getLatitude(), endLatLonPoint.getLongitude());//北京站AmapNaviParams params = new AmapNaviParams(new Poi(stationNameStart, startMsg, ""), null,new Poi(stationNameEnd, endMsg, ""), AmapNaviType.DRIVER).setTheme(AmapNaviTheme.WHITE);params.setUseInnerVoice(true);AmapNaviPage.getInstance().showRouteActivity(SearchActivity.this, params, SearchActivity.this);}});metNameStart = (AutoCompleteTextView) findViewById(R.id.metNameStart);metNameEnd = (AutoCompleteTextView) findViewById(R.id.metNameEnd);mListMessageStation = (ListView) findViewById(R.id.mListMessageStation);metNameStart.addTextChangedListener(onInputListenerStart);metNameEnd.addTextChangedListener(onInputListenerEnd);mtvNavi = (TextView) findViewById(R.id.mtvNavi);mIvBack = (ImageView) findViewById(R.id.mIvBack);mTvTitle = (TextView) findViewById(R.id.mTvTitle);mTvTitle.setText("路线搜索");mIvBack.setVisibility(View.VISIBLE);mIvBack.setOnClickListener(this);mtvNavi.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.mIvBack:SearchActivity.this.finish();break;case R.id.mtvNavi:if (TextUtils.isEmpty(metNameStart.getText().toString())) {ToastUtil.ShowCentre(this, "请输入出发站");return;}if (TextUtils.isEmpty(metNameEnd.getText().toString())) {ToastUtil.ShowCentre(this, "请输入终到站");return;}Intent mrlOrder = new Intent(SearchActivity.this, RoutePOIActivity.class);mrlOrder.putExtra("message_latitude",startLatLonPoint.getLatitude());mrlOrder.putExtra("message_longitude",startLatLonPoint.getLongitude());mrlOrder.putExtra("message_latitude_station",endLatLonPoint.getLatitude());mrlOrder.putExtra("message_longitude_station",endLatLonPoint.getLongitude());mrlOrder.putExtra("title_message", "公交导航");SearchActivity.this.startActivity(mrlOrder);break;}}@Overridepublic void initData() {mListMessageStation.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {if (startFlag) {stationNameStart = mTipListStart.get(arg2).getName();startLatLonPoint = mTipListStart.get(arg2).getPoint();metNameStart.setText(mTipListStart.get(arg2).getName());mListMessageStation.setVisibility(View.GONE);} else {stationNameEnd = mTipListEnd.get(arg2).getName();endLatLonPoint = mTipListEnd.get(arg2).getPoint();metNameEnd.setText(mTipListEnd.get(arg2).getName());mListMessageStation.setVisibility(View.GONE);}// mListMessageStation.setVisibility(View.GONE);}});}/*** 数据的监听*/private TextWatcher onInputListenerStart = new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {if (s.toString().equals("我的位置")) {return;}if (s != null && s.length() > 0 ) {InputtipsQuery inputquery = new InputtipsQuery(s.toString().trim(),PonyApplication.getInstance().mAapLocation.getCityCode());inputquery.setCityLimit(true);Inputtips inputTips = new Inputtips(SearchActivity.this, inputquery);inputTips.setInputtipsListener(new Inputtips.InputtipsListener() {@Overridepublic void onGetInputtips(final List<Tip> tipList, int rCode) {if (rCode == 1000) {mListMessageStation.setVisibility(View.VISIBLE);mTipListStart = tipList;startFlag = true;BusPoiAdapter busPoiAdapter = new BusPoiAdapter(SearchActivity.this, mTipListStart);mListMessageStation.setAdapter(busPoiAdapter);} else {Log.i("pony_log", "shibai");}}});inputTips.requestInputtipsAsyn();}}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void afterTextChanged(Editable s) {}};/*** 数据的监听*/private TextWatcher onInputListenerEnd = new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {if (s != null && s.length() > 0 ) {InputtipsQuery inputquery = new InputtipsQuery(s.toString().trim(), PonyApplication.getInstance().mAapLocation.getCityCode());inputquery.setCityLimit(true);Inputtips inputTips = new Inputtips(SearchActivity.this, inputquery);inputTips.setInputtipsListener(new Inputtips.InputtipsListener() {@Overridepublic void onGetInputtips(final List<Tip> tipList, int rCode) {if (rCode == 1000) {mListMessageStation.setVisibility(View.VISIBLE);mTipListEnd = tipList;startFlag = false;BusPoiAdapter busPoiAdapter = new BusPoiAdapter(SearchActivity.this, mTipListEnd);mListMessageStation.setAdapter(busPoiAdapter);ArrayAdapter<String> aAdapter = new ArrayAdapter<String>(SearchActivity.this, R.layout.bus_item_message);metNameStart.setAdapter(aAdapter);} else {Log.i("pony_log", "shibai");}}});inputTips.requestInputtipsAsyn();}}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void afterTextChanged(Editable s) {}};@Overridepublic void onInitNaviFailure() {}@Overridepublic void onGetNavigationText(String s) {}@Overridepublic void onLocationChange(AMapNaviLocation aMapNaviLocation) {}@Overridepublic void onArriveDestination(boolean b) {}@Overridepublic void onStartNavi(int i) {}@Overridepublic void onCalculateRouteSuccess(int[] ints) {}@Overridepublic void onCalculateRouteFailure(int i) {}@Overridepublic void onStopSpeaking() {}@Overridepublic void onReCalculateRoute(int i) {}@Overridepublic void onExitPage(int i) {}@Overridepublic void onStrategyChanged(int i) {}@Overridepublic View getCustomNaviBottomView() {return null;}@Overridepublic View getCustomNaviView() {return null;}@Overridepublic void onArrivedWayPoint(int i) {}}

六、浏览更多Android毕业设计

毕业设计-基于android的租房信息发布平台的APP_信息发布app源码_Android毕业设计源码的博客-CSDN博客

毕业设计-基于android选课系统的设计与实现_android学生选课系统_Android毕业设计源码的博客-CSDN博客

毕业设计之校园一卡通管理系统的设计与实现_一卡通管理系统实现_Android毕业设计源码的博客-CSDN博客

基于Android的校园二手闲置物品交易系统设计与实现_基于android的二手交易平台_Android毕业设计源码的博客-CSDN博客

基于androidstudio校园快递APP系统的设计与实现_android studio论文_Android毕业设计源码的博客-CSDN博客

基于android的商城购物定制APP_安卓开发购物app_Android毕业设计源码的博客-CSDN博客

更多毕业设计可以浏览我的个人主页哦!

七、源码下载

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

/download/u014388322/88180730

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。