[App Inventor] 用 If-else 區塊判斷輸入值正確性,並顯示 Notifier 提醒視窗

[App Inventor] 用 If-else 區塊判斷輸入值正確性,並顯示 Notifier 提醒視窗

在昨天的 MIT App Inventor 2 安裝與初學,我寫了一個計算酒精與水混合濃度的 app,

不過裡面並沒有去確認輸入值的正確性,今天就來補上吧~

 

1. 加入 Notifier 元件

在 Designer 模式,把 Notifier 元件拉到 Viewer 區裡面,

因為 Notifier 是不可視元件,因此我們可以在 Components 區確認它的存在

(Viewer 區其實也有標示啦,不過個人覺得用 Components 確認比較清楚):

Screen Shot 2016-09-07 at 12.45.06 PM

 

2. 實作檢查邏輯

在 Blocks 模式,原本我們是在 ButtonCalc.Click 就立刻做計算,

現在我們先加入一個 Built-in > Controls > If-then 區塊,

在 if 那邊加入數個 or 區塊,好讓我們可以輸入四個判斷式:

  – InDensity <= 0

  – InDensity > 100

  – OutDensity <= 0

  – OutDensity > 100

當判斷式有任何一個成立時,就呼叫 Notifier.ShowMessageDialog 來顯示一個提示視窗:

Screen Shot 2016-09-07 at 12.53.15 PM

 

另外,我們加另外一個判斷式,

確保混合後的酒精濃度不會比原本的還高 (加水只會讓酒精濃度降低而已):

Screen Shot 2016-09-07 at 12.53.36 PM  

 

這邊是完成後的整體程式的樣子:

blocks  

 

3. 測試程式

我們故意讓混合後的濃度比混合前還高,按下計算的按鈕後,

果然如我們預期的,顯示出「輸入值有誤」的提醒視窗了:

Screen Shot 2016-09-07 at 12.57.22 PM  

 

這次學到了 If-else, Or, 和 Notifier 元件的用法~

以 Or 區塊來說,在 App Inventor 裡的寫法,

要比平常程式 (如 python) 直接寫 if a <= 0 or a > 100 or b <= 0 or b > 100 要麻煩不少,

如果它也能提供一個設定鈕,可以讓 Or 裡面直接塞多個判斷式的話就方便多了~

 

(本頁面已被瀏覽過 1,215 次)

One thought on “[App Inventor] 用 If-else 區塊判斷輸入值正確性,並顯示 Notifier 提醒視窗

  1. ephrain感覺你的網誌可以出一本程式書了,
    話說自從有了FB後,
    會打網誌的人越來越少,
    最近在學Android Studio,
    看到您對程式的熱情,
    我覺得很棒
    版主回覆:(09/07/2016 02:51:45 PM)
    謝謝,您太過獎了,
    我這邊都只是記錄一些小心得,
    一方面自己可以再回來查,一方面也希望可以分享給別人~
    學 Android 很棒喔,
    我也感受到您對程式的熱情,一起加油吧 ^^/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料