標籤:邏輯 center 資料庫表 右鍵 follow share 關係 工具 開始
第三方服務之Bmob後端雲的答題系統小項目(四)
事先說明:這裡的一切操作都是在整合了BmobSDK之後實現的,如果對Bmob還不瞭解的話,請關注我第一篇Bmob文章
項目意義:
該項目實現簡單,比較難處理的就是選擇題的按鈕複用效果
該項目可以即時更新考試題目和考試內容,靈活性高
聰明的你可能發現了,駕照寶典的科目一答題系統和這個非常類似,而且一題配上一個廣告,這收益...,說不定下一個黑馬就是你哦
具體思路:
1、項目可以分3個頁面來分析:選擇試題頁面、填寫資訊頁面、開始考試頁面。
2、選擇試題頁面:從Bmob後台擷取Exam表中考試試題資訊,通過一個GridView展示出來,將選擇的試題名稱傳到下一個頁面。
3、填寫資訊頁面:擷取使用者填寫的資訊和上個頁面傳下來的試題名稱,查詢後台Grade表中是否存在這條資料,如果存在,則通知已經考試完成,若不存在,則將資料使用者資訊傳到下一個頁面,進入開始考試頁面
4、開始考試頁面:擷取Exam表中的examTable資料,對應查詢後台Question_x表,擷取考試試題,考試開始,記錄進來考試的時間到SharePreference中,與上次最後一次考試時間做比較,是否超過了考試限制時間,若超過則記分為0分,將資料添加到後台Grade表中。考試完成後,計算單選題分數為1分,多選題分數為2分,總分添加到後台分數資料,結束考試。
項目介紹:
項目:
項目工程結構圖:
後台資料庫表的結構:(右鍵用新標籤開啟看得清晰一點)
步驟一:javaBean的介紹
考試實體類:
isExaming:該考試是否已經關閉
examTable:用來取出後台考試題目資料表(後台可以有多個題目庫,只要這個欄位對應資料表即可)
分數統計類:
試題實體類:
步驟二:答題邏輯的實現
第一步:定義變數和找到布局控制項和繫結控制項的點擊事件:
一個是頂部的試題,一個題目內容和四個答案按鈕,下一題和上一題按鈕,一個試題下面的計數器(9個)
第二步:初始化資料:
用考試唯一標識和考生資訊計算出md5,用來當做考試計時的唯一識別,因為項目中可以存在很多種考試,如不能區分,就會導致計時錯誤,保證了計時的準確性和唯一性。
如果計時未發現超過限時時間,則初始化題目
第三步:處理點擊事件:
第四步:計算分數結束考試,答案是按照A-1、B-2、C-3、D-4這樣的對應關係判斷的,所以在選項的索引上+1
第五步:在關閉這個考試時記錄下考試最後一次時間,停止計時
第六步:其他工具類
這裡提供該類的檔案下載連結,如果喜歡可以參考,ExamActivity類
http://download.csdn.net/detail/qq_30379689/9603112
Android實戰——第三方服務之Bmob後端雲的答題系統小項目(四)