研究動機
功能
本程式使用到2個 Screen(螢幕,也有稱為畫面)。
- 第1個Screen , 可以輸入人數、第1層清單內容(即類別)、第1個類別品名和第2個類別品名,也可以祇輸入第1個類別品名。並可儲存和載入這些設定。
如果「數量」被勾選,Screen2 會出現數量 清單選擇器。 - 第2個Screen,顯示座號 下拉式選單。根據第1個Screen第1層清單內容,有2個類別可選,如「餐點」和「 飲料」 。 每個類別下面還有各種品名可選。如果祇有1個類別,就不用出現類別的選單,直接出現第1個類別品名清單選擇器。
- 如果「數量」被勾選,會出現數量 清單選擇器。
- 按「點選結果」鈕,顯示每一個人點選的結果。可以直接修改「點選結果」的內容。可以儲存和載入 「點選結果」。
- 按「統計結果」鈕,根據「點選結果」的內容,顯示每一種品名被點選的次數。將統計結果,使用簡訊發送給店家。
執行畫面
有2個類別、數量有勾選。
素材
本 app的 icon (圖示),可自己繪製或網路搜尋。
進入 Appinventor
Google 輸入 appinventor,選 「MIT App Inventor」。
選 「Create Apps」。
網址為 :http://ai2.appinventor.mit.edu/
你應該先看此篇文章 「手機 App 程式設計- AppInventor2 -飲料點餐系統,多 screen 元件的應用」,簡單版和修改版都要看,最後修改版的專案,如名稱為 :select_drink_modify。
開啟原來的舊專案(My Projects/My projects),選舊專案,如 select_drink_modify,按一下,打開此專案。另存新專案(My Projects/ Save project as... ),輸入新專案的名稱,如 select_object,按 「OK」鈕 。
專案的名稱只能使用大小寫字母、數字及「 _」符號,名稱的第一個字元必須是英文字母,不能使用中文字。
Designer (畫面編排)
Screen1:
Screen1 元件相關屬性表
元件 |
類別 |
屬性 |
功能 |
Screen1 |
|
Title:物品點選系統AppName:select_object,可以改成 「物品點選系統」(出現在手機上面的App名稱) |
1個Screen元件就是1個螢幕 (畫面)。 |
HorizontalArrangement1 |
Layout(介面配置) |
AlignVertical:Center:2(垂直對齊,居中:2 )。 |
水平配置元件,讓裏面的元件可以水平對齊。 |
Label_NumberOfPeople |
User Interface(使用者介面) |
Text:人數: |
標籤 |
TextBox_NumberOfPeople |
User Interface |
Width:50 pixels(像素) |
文字方塊,可以輸入 人數,預設為35。 |
VerticallArrangement1 |
Layout |
Width:Fill Parent |
垂直配置元件,讓裏面的元件可以上下對齊。 |
Label_Category |
User Interface |
Text: 第1層清單內容,至少要輸入1類內容,\n最多2類內容且中間以半形, 分開 |
標籤 |
TextBox_Category |
User Interface |
Text: 餐點,飲料
|
文字方塊 第一層清單內容,祇能二類,因程式祇用到二個第二層清單選擇器。 預設是分成「餐點,飲料」二類。 |
VerticalArrangement2 |
Layout |
Width:Fill Parent |
垂直配置元件,讓裏面的元件可以上下對齊。 |
Label_Category1 |
User Interface |
Text: 第1個類別內容: |
標籤 |
TextBox_ Category1 |
User Interface |
Width:Fill Parent
|
文字方塊,可以輸入第1個類別內容。 |
CheckBox_Amount |
User Interface |
Checked:不勾選 |
複選盒 |
VerticallArrangement3 |
Layout |
Width:Fill Parent |
垂直配置元件,讓裏面的元件可以上下對齊。 |
Label_ Category2 |
User Interface |
Text: 第2個類別內容: |
標籤 |
TextBox_ Category2 |
User Interface |
Width:Fill Parent |
文字方塊,可以輸入第1個類別內容。 |
HorizontalArrangement4 |
Layout |
AlignVertical:Center:2(垂直對齊,居中:2 )。 |
水平配置元件,讓裏面的元件可以水平對齊。 |
Button_Save |
User Interface |
Text: 儲存設定 |
按鈕 |
Button_Load |
User Interface |
Text: 載入設定 |
按鈕 |
Button_Clear |
User Interface |
Text:清除設定 |
按鈕 |
Button_Enter |
User Interface |
Text: 進入點選系統 |
按鈕 |
TinyDB_Argument |
Storage(資料儲存) |
|
微型資料庫,用來儲存設定。 |
Notifier1 |
User Interface |
|
對話框元件,用來顯示訊息。 |
Screen2 元件相關屬性表
元件 |
類別 |
屬性 |
功能 |
Screen2 |
|
Title:點選系統
|
1個Screen元件就是1個螢幕(畫面)。 |
HorizontalArrangement1 |
Layout(介面配置) |
AlignVertical:Center:2(垂直對齊,居中:2 ) |
水平配置元件,讓裏面的元件可以水平對齊。 |
Label_SeatNumber |
User Interface(使用者介面) |
Text: 座號 |
標籤 |
Spinner_SeatNumber |
User Interface |
|
下拉式選單,用來選座號。 |
ListPicker_Category |
User Interface |
Text(文字):類別 |
清單選擇器 本例是第1層清單,先選類別。 |
ListPicker_Category1 |
User Interface |
ShowFilterBar(顯示搜尋框)
:勾選,讓使用者可以輸入關鍵字來搜尋 |
清單選擇器 本例是第2層清單,顯示第1個類別品名的清單。 由程式判斷是否要出現。 |
ListPicker_Amount |
User Interface |
Text(文字):數量 |
清單選擇器 |
HorizontalArrangement2 |
Layout(介面配置) |
AlignVertical:Center:2(垂直對齊,居中:2 ) |
水平配置元件,讓裏面的元件可以水平對齊。 |
Button_SaveResult |
User Interface |
Text: 儲存結果 |
按鈕 |
Button_LoadResult |
User Interface |
Text: 載入結果 |
按鈕 |
Label_FileName |
User Interface |
Text: 檔名 |
標籤 |
TextBox_FileName |
User Interface |
Hint(提示):可以輸入儲存點選結果的檔名 |
文字方塊,用來輸入儲存點選結果的檔名。預設為 : order_result.txt。 |
Label_Result |
User Interface |
Text: 點選結果: |
標籤 |
TextBox_Result |
User Interface |
Height: Fill Parent(填滿) |
文字方塊,顯示每一個人點選的結果。 |
Button_Total |
User Interface |
Text: 統計結果 |
按鈕 按下去可以顯示每一種品名被點選的次數。 |
TextBox_Total |
User Interface |
Height: 150 pixels(像素) Width:Fill ParentHint: (清空) MultiLine(允許多行): 要勾選,可多行顯示 Text: (清空) |
文字方塊,顯示每一種品名被點選的次數。 |
HorizontalArrangement3 |
Layout |
Width:Fill
Parent |
水平配置元件 |
Label_
StorePhone |
User Interface |
Text: 店家手機號碼: |
標籤 |
TextBox_StorePhone |
User Interface |
Text: 0 |
文字方塊,輸入店家手機號碼。 |
Button_Send |
User Interface |
Text: 送出訂單 |
按鈕 按下去將訂單結果以簡訊方式送給店家 |
ListPicker_ Category2 |
User Interface |
ShowFilterBar(顯示搜尋框) : 勾選,讓使用者可以輸入關鍵字來搜尋 |
清單選擇器 本例是第2層清單,顯示第2個類別品名的清單。 Visible :取消勾選,一開始不會出現在畫面上。 |
File_Result |
Storage(資料儲存) |
|
檔案管理元件 |
Notifier1 |
User Interface |
|
對話框元件 |
Texting1 |
Social(社交應用) |
|
簡訊元件,將訂單以簡訊通知店家。 |