張思進 李佳 莫偉健
DOI:10.16661/j.cnki.1672-3791.2109-5042-3943
摘? 要:隨著互聯(lián)網(wǎng)技術飛速發(fā)展,在此基礎上的旅游業(yè)也出現(xiàn)了許多新模式,暢游之家App提供個性化的定制平臺,普通大眾能夠有效地控制價格,簡單的“套餐式”旅游服務專門為沒有做攻略的用戶提供適合自身的旅游線路,該App采用Android Studio在Windows平臺上基于Android 6.0操作系統(tǒng)以及SQLite、JDK 8集成環(huán)境使用面向對象的語言Java編譯語言,最終由主頁、定制、行程這3個主界面功能模塊以及登錄注冊界面功能模塊構成。該App界面整潔,使用起來簡單方便。
關鍵詞:定制旅游? ?Android? App? ?Android Studio? ?SQLite
中圖分類號: TP311.56? ? ? ? ? ? ? ? ? ? 文獻標識碼:A文章編號:1672-3791(2021)09(a)-0017-06
Changyouzhijia App Development Based on Android
ZHANG Sijin? ?LI Jia*? ? MO Weijian
(Guangzhou Xinhua University, Dongguan, Guangdong Province, 523133 China)
Abstract: With the rapid development of Internet technology, many new models have emerged in the tourism industry on this basis. Changyouzhijia App provides a personalized customized platform, and the ordinary people can effectively control prices. The simple "package" tourism service provides suitable tourism routes for users who do not have strategies. This App uses Android Studio on the Windows platform based on the Android 6.0 operating system and the SQLite and JDK 8 integrated environment. It uses the object-oriented language java to compile the language, and finally composed of three main interface function modules: home page, customization and travel, as well as login and registration interface function modules. The App interface is neat and easy to use.
Key Words: Customized tourism; Android; App; Android Studio; SQLite
隨著疫情的緩和,越來越多的人選擇了出門旅游,同時隨著旅游需求的大眾化、普遍化和多樣化,旅游消費結構、產(chǎn)品結構也正在發(fā)生重大變化[1-2],細致入微的觀光、感悟體驗、休閑度假等旅游消費和產(chǎn)品供給都在快速增長?!叭蚵糜巍薄按舐糜螘r代”等概念的提出[3],推動“攜程”“小紅書”等各種基于移動終端的文化旅游開放平臺迅速崛起。旅游者們在終端平臺訂票、訂酒店、查路線、查攻略,為旅游者們帶來了極大的便利[3]。而該App將以上兩款軟件很好地結合并實現(xiàn)“攻略路線+訂票”。
該軟件使用的技術有面向對象的Java語言編程、SQLite、SQLiteOpenHelper、Android SDK、UI框架。
1? 程序功能設計
1.1 程序介紹
該軟件設計將Android studio作為開發(fā)平臺,各部分內容使用Android SDK,每個界面設計使用UI框架在layout的xml文件內,Java作為后臺開發(fā)語言,使用SQLiteOpenHelper技術連接Android studio中自帶的SQLite數(shù)據(jù)庫進行數(shù)據(jù)的存儲,結合百度地圖的API接口進行開發(fā)。該App由賬號模塊、側滑頁面模塊、主頁推送模塊、定制模塊以及行程模塊組成,實現(xiàn)登錄、注冊賬號、找回密碼、用戶詳細信息、檢索用戶搜索的城市和預算進行路線的生成、將生成的路線用百度地圖顯示出來等功能。具體功能如圖1所示,源代碼結構如圖2所示。
1.2 數(shù)據(jù)庫設計
該軟件使用Android studio內嵌的SQLite數(shù)據(jù)庫進行用戶賬號密碼以及定制界面數(shù)據(jù)的存儲,用戶可以對自己的賬號可以進行增、改操作,定制界面將會在數(shù)據(jù)庫中錄入已有的數(shù)據(jù),用戶對城市名字進行檢索時會調用數(shù)據(jù)庫里對于的城市并將該城市的旅游路線顯示出來,相當于用戶對數(shù)據(jù)庫的查詢操作。該模塊的部分數(shù)據(jù)庫創(chuàng)建代碼如下。
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
// TODO Auto-generated method stub
String sql = "create table user(id integer primary key autoincrement,name varchar(20),password varchar(20),sex varchar(2),hobby varchar(20),birth varchar(20),city varchar(20))";
sqLiteDatabase.execSQL(sql);
}
public void addData(SQLiteDatabase sqLiteDatabase,String name,String password,String sex,String hobby,String birth,String city){
ContentValues values = new ContentValues();
values.put("name", name);
values.put("password", password);
values.put("sex", sex);
values.put("hobby", hobby);
values.put("birth", birth);
values.put("city", city);
sqLiteDatabase.insert("user", null, values);
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
}
2? 界面功能實現(xiàn)
2.1 登錄界面
用戶登錄注冊是每個軟件必不可少的一部分[5],該界面使用一層嵌套LinearLayout,外部為整個界面框架,內部則為按鈕的布局,界面設計見圖3,用戶的注冊后會將數(shù)據(jù)存入SQLite內,注冊界面見圖4,方便用戶再次使用[5-6],在Java文件內編寫功能邏輯且設置用戶輸入時為不為空,若輸入為空或者用戶名、密碼不正確時用Tosat()方法分別彈出“不能輸入為空”“用戶名不正確”“密碼不正確”的信息提醒用戶重新對其進行輸入,輸入用戶名、密碼都正確時點擊登錄時會彈出“登錄成功”并跳轉到activity_main界面。由此實現(xiàn)該界面的登錄注冊功能。
2.2 主頁界面
在側滑界面放置主要的功能按鈕,點擊對應的按鈕則跳轉到對應的功能界面[7],具體情況見圖5,點擊主頁按鈕跳轉到主頁界面,主頁界面見圖6,主頁界面主要框架用LinearLayout布局,由于LinearLayout所需要的數(shù)據(jù)較少,可直接采用靜態(tài)加載數(shù)據(jù)[4],在設置子控件屬性的時候,用ImageView和TestView給予用戶瀏覽當前最熱門的地方和其他用戶發(fā)表的攻略路線。在Java文件中使用GridLayoutManager里的setSpanSizeLookup方法點擊其中一個內容,則會跳轉到相關activity界面進行介紹。
2.3 定制界面
在側滑界面點擊定制,則會跳轉到定制的第一個界面,TextInputLayout控件會提示用戶輸入一個的城市和所需要的經(jīng)濟預算,具體情況見圖7,點擊搜索后會連接SQLite數(shù)據(jù)庫,用戶在需要獲取該類的對象時,需要自定義類繼承自SQLiteOpenHelper類,并實現(xiàn)其中的onCreate(SQLiteDatabase)onUpgrade(SQLiteDatabase,int,int)方法,可以選擇性地實現(xiàn) onOpen(SQLiteDatabase)。這個類會自動幫助用戶在需要時打開數(shù)據(jù)庫,在不存在時創(chuàng)建數(shù)據(jù)庫,在必要時更新數(shù)據(jù)庫。已有的城市信息和經(jīng)濟預算相結合相當于數(shù)據(jù)庫的條件查詢語句,條件為城市和經(jīng)濟預算,查詢成功后會跳轉到第二個定制界面顯示出相關信息如圖8所示,該界面上方有3個分欄分別為:攻略計劃、機票預訂、酒店預訂,在xml文件主要用RelativeLayout布局,在Java文件編寫SlidePagerAdapter.java適配器,Adapter是連接后端數(shù)據(jù)和前端顯示的適配器接口,是數(shù)據(jù)和UI(View)之間一個重要的紐帶[8]。機票預訂和酒店預訂的信息填寫后數(shù)據(jù)會分別儲存在SQLite的PlaneBook表和HotelBook表中。
2.4 行程界面
行程界面相當于一個導航,用戶輸入一個地方會出現(xiàn)該地方的特色景點,具體情況見圖9,點擊則會出現(xiàn)該地方的詳細介紹,具體情況見圖10,該界面的實現(xiàn)首先是百度地圖API的獲取訪問網(wǎng)站,便可進行獲取相應的產(chǎn)品以及下載相關SDK和申請key、SHA1等信息,在Android Studio創(chuàng)建應用,使用已有的功能清單文件所需權限,使用BaiduMap.OnMapClickListener地圖單擊事件監(jiān)聽接口,首先在布局文件添加mapview,接著在Java文件的MainActivity文件里面添加使用即可實現(xiàn)地圖點擊呈現(xiàn)詳細信息。
3? 系統(tǒng)調試
3.1 SQLite數(shù)據(jù)庫調試
使用DOS窗口并且運用數(shù)據(jù)庫查詢語句查詢所有表查看是否創(chuàng)建成功,具體情況見圖11。
3.2 百度地圖API調試
在AndroidManifest.xml中加入相對應的權限xml文件,在百度開發(fā)平臺上就能看到用戶使用的次數(shù)等信息,具體情況見圖12。
4? 結語
該文設計并實現(xiàn)了一個基于Android的定制游App,當前疫情的影響讓很多人在去旅行前沒有很好地進行規(guī)劃,開發(fā)暢游之家App能夠讓更多的人真正體會到旅游是在享受,而不是在浪費時間和金錢,從而達到時間不浪費,金錢不白花的目的。
參考文獻
[1] 印偉.旅游度假區(qū)的地方行政立法研究[J].中南林業(yè)科技大學學報:社會科學版,2016,10(6):89-92.
[2] JIA Z Y,LI D,HE F Z.Analysis and Reviews on Tourism and Travel Mobile Apps of China[C]//6th International Conference on EMCM,2016:62-66.
[3] 江中宇,常峻溪,朱繼軍,等.基于軟件定義網(wǎng)絡的流量工程[J].科技創(chuàng)新導報,2020,17(20):117-119.
[4] 張清.基于Android的個人健康助理系統(tǒng)的設計與實現(xiàn)[J].信息與電腦:理論版,2021,33(6):103-105.
[5] 竇海娥,王永虎,楊廣紅.基于移動終端的旅游集散地App界面設計[J].設計,2018(20):134-136.
[6] 青幼蕾,譚妙,童強,等.基于Android的旅游服務App開發(fā)[J].電子測試,2021(4):56-58,92.
[7] 葛凱,馬馳,陳威,等.基于PLC的周拋機的控制系統(tǒng)[J].建材世界,2021,42(1):4.
[8] 李國梁.基于移動終端的林業(yè)巡護系統(tǒng)研究與實現(xiàn)[D].西安:西安理工大學,2016:55.