山西農(nóng)業(yè)大學(xué)軟件學(xué)院 楊 凡
基于Android的菜譜APP設(shè)計與實現(xiàn)
山西農(nóng)業(yè)大學(xué)軟件學(xué)院 楊 凡
菜譜APP是基于Android平臺,采用java程序設(shè)計語言以及servlet等技術(shù)編寫的項目,本文從該APP的開發(fā)與實現(xiàn)角度,對其進行展開描述。
Android;Java;客戶端/服務(wù)器
在我國,飲食文化博大精深,自古以來,我國便有著“民以食為天”的理念。由于地大物博,中國在歷史上形成了不同菜系不同口味的美食,它們做法各異卻都深受喜愛。移動互聯(lián)飛速發(fā)展的今天,“互聯(lián)網(wǎng)+”為我們提供了廣闊平臺,結(jié)合大眾對美食的執(zhí)念,菜譜APP應(yīng)運而生。
(1)該項目使用Android集成開發(fā)平臺ADT Bundle,它不需要用戶在原有的eclipse上配置安卓環(huán)境,它是一個裝有ADT插件的Eclipse集成環(huán)境,并具備Android SDK的核心功能。
(2)該項目采用Java語言進行編寫,它是一種面向?qū)ο蟪绦蛟O(shè)計語言,具有平臺無關(guān)性、健壯性、簡單安全等特點。
(3)json解析是跨平臺數(shù)據(jù)格式轉(zhuǎn)換的一個橋梁,服務(wù)器端將特定的數(shù)據(jù)類型轉(zhuǎn)換為json字符串 ,客戶端將json字符串轉(zhuǎn)換成原來的類型。Json使用冒號進行賦值,每一條賦值語句用逗號分開,整個對象用大括號封裝起來,可用大括號分級嵌套數(shù)據(jù)。使用起來十分方便。
創(chuàng)建數(shù)據(jù)庫表recipe_table,其中包括4個字段: id,name,material,method,它們分別代表菜名、原材料和制作方法。id是該表的主鍵,int類型,不允許空值;其余的字段都為varchar類型。
圖1 數(shù)據(jù)庫表圖
該項目使用ADT自帶的界面編輯工具,創(chuàng)建布局文件。
界面主要包括:首頁,添加界面,搜索界面,顯示界面。
圖2 工程目錄圖
圖3 工程界面
3.1.1 添加菜譜
添加菜譜功能是將一道菜的名字,材料以及制作方法添加到數(shù)據(jù)庫中。首先,創(chuàng)建布局文件activity_add_recipe.xml,先拖入一個線性布局,再分別添加三個EditText和一個Button按鈕,在三個Edit-Text中用戶可以用來輸入菜名、原材料以及制作方法,button按鈕是用來點擊保存該菜譜。其次,在AddRecipeActivity.java中將控件實例化,并通過findViewById找到該控件,之后再為它們設(shè)置相應(yīng)地寫入方法和點擊響應(yīng)事件。
3.1.2 顯示菜譜
創(chuàng)建布局文件activity_show_local.xml,添加ListView控件。在ShowLocalActivity.java中重寫onCreate()方法,實例化適配器控件,從數(shù)據(jù)庫中獲取數(shù)據(jù),創(chuàng)建萬能適配器并將三者聯(lián)系起來,當(dāng)用戶點擊列表項后能夠跳轉(zhuǎn)到菜譜詳情界面。
3.1.3 搜索菜譜
創(chuàng)建布局文件activity_search_result.xml,添加EditText和Button以及ListView,在SearchResultActivity.java中點擊搜索按鈕后判斷有無此菜譜,失敗提示“沒有查找到本地菜譜”,成功后點擊菜譜跳轉(zhuǎn)到菜譜界面。
3.1.4 首界面:動態(tài)廣告牌
首頁使用Handler機制來實現(xiàn)菜品滾動播放。廣告牌每兩秒更新一次,由于子線程不能對UI進行更新,因此使用Handler機制將消息發(fā)送到主線程中。子線程中發(fā)送消息使用方法handler.sendMassage(msg),主線程中用Handler對象中的handleMessage()方法接收消息并對UI更新。原理如圖4所示:
圖4 handler機制圖
如圖5所示,瀏覽器通過get或post方式發(fā)送請求,服務(wù)器端獲取請求的關(guān)鍵字,在數(shù)據(jù)庫中進行查詢,將查詢到的結(jié)果進行封裝,之后將該結(jié)果發(fā)送響應(yīng)給客戶端。response接受響應(yīng)并對封裝的數(shù)據(jù)進行解封裝操作,然后顯示具體的菜譜信息到客戶端。核心代碼:
圖5 客戶端/服務(wù)器原理圖
本文對菜譜APP從數(shù)據(jù)庫、界面設(shè)計以及邏輯實現(xiàn)等方面進行了闡釋,操作簡單快捷。同時,該項目還有許多功能可以補充,例如用戶注冊登錄、美食分享等。我們應(yīng)該利用移動平臺的便捷性對其功能特性不斷補充,以提升用戶體驗。
[1]王珊,陳紅.數(shù)據(jù)庫系統(tǒng)原理教程[M].清華大學(xué)出版社,1998.[2]毋建軍.Android[M]高級開發(fā)技術(shù)案例教程[M].北京:清華大學(xué)出版社,2015.
楊凡(1995—),山西太谷人,大學(xué)本科,現(xiàn)就讀于山西農(nóng)業(yè)大學(xué)。