App Inventor學習記錄209~dictionary字典,又一個沒掌握的元件試作

dictionary字典,這一個算是比較新的東西。以往看到它,我都直接跳過。這次花了點時間大概試一下它的用法。
記錄一下:
App Inventor學習記錄209~dictionary字典,又一個沒掌握的元件試作

這次範例的的完成品如下。

這次測試了去抓資料,新增、修改、移除資料。
通通都是用 dictionary字典方塊做的。


全部的程式碼如下。


建立一些變數。
因為是測試的關係,所以這裡的建的變數,有些沒有用到。


變數_字典的內容。


變數_字典 2的內容。
很明顯這裡跟清單的用法差不多,同樣是可以一層一層再一層的套下去。
字典裡可以放的內容有文字數字清單字典


建立前三個標籤的顯示程式。
標籤 2和標籤 4分別直接顯示字典和字典 2。

用 for each key with value in dictionary的方塊,來把字典 2的內容分行顯示。
這裡取得的 key值是阿花,小胖,爸爸,清單。
取得的 value值是 key值後面的資料。


字典的格式是用 {}把資料包起來,再來就是一個 key對應一個值的格式。
見上圖字典 1的內容。

前三個標籤的顯示的程式的執行效果如上。


建立字典分拆程式。
這個程式的主要目的,就是要產生 spinner下拉式選單要用的清單。
同樣用 for each key with value in dictionary方塊,把字典 2的每一個 key都加到 global 人員清單中。
因為要用下拉式選單的話,清單中的第一項,我都習慣加上請選擇的項目,所以用 insert list item方塊,把請選擇加到 global人員清單中的第 1項中。

接下來要把國語、數學、自然、英文。這 4個也建立成一個清單。
做法跟上面一樣,用 for each key with value in dictionary方塊。
只是這次的字典我們要用 get value for key這個字典方塊來抓 ,in dictionary字典 2中,key值是阿花的字典,如果沒有這個的值的話,就回傳 not found。
這個用法就跟抓清單項目的第幾項的意思是一樣的,只是改用 key值去抓。
一樣把請選擇科目,加入到 global 科目清單中的第 1項。

把幾個下拉式選擇的元素都分別的設定一下。


這兩個前面已經介紹過了。


最上方的判斷式是要判斷有沒有從下拉式選單中,選擇到人員和科目。因為這 2個下拉式選單的第 1項分別是請選擇和請選擇科目,所以 selection index的值不等於 1話,就代表有選擇到人員和科目。

在 spinner 1下拉式選單 1中,選擇人員,在 spinner 2中,選擇科目。
再用 get value for key字典方塊,取得值。
然後再顯示在 label 8中。


按鈕 2按下後,產生的結果如上。


這是要修改或是新增字典中資料的做法。說明起來真的是太長了。
總之,就是要用 set value for key這個方塊,來做。
因為這裡只放一個按鈕,所以要修改資料的時候,要先判斷要修改的位置,是不是沒有資料。
沒有資料的話,就把資料加進去。
如果有資料的話,就叫出對話框。


選擇是之後,再修改資料。


效果如上。


移除資料的話,就用 remove entry for key這個方塊。


移除資料的效果如上。


這裡是要測試一下 get keys會產生的結果。
一併測試 size of dictionafy字典長度方塊的結果。


效果如上。


測試 get value at key path產生的效果。

這個方塊在用的時候,path的地方要放清單。這裡只做了 2層,但如果照它的使用說明來看的話,應該可以放很多層,這個部份等有用到的時候再來試作看看。


效果如上。

好的,全部的程式方塊都簡單說明過了,建議大家試著做一次,就會用的越來越熟。
但如果不想要重新拉程式方塊,或要需要範例 aia檔的話,請前往第 2頁哦!

發表迴響