Google 專案 Github 位置
https://github.com/android/sunflower
修改專案 Github 位置 : https://github.com/LiuPangYao/bw7
使用 DataBase Inspector 查看 Database 檔案
分別紀錄 plants 及 garden_plantings 兩個資料表
檔案位置
增加資料表欄位
![](https://1.bp.blogspot.com/-sWO6poWIQp8/YN_8Rqr-u-I/AAAAAAAAHCA/iGs3Dk9eKq0oZ6WqDpTclvN2vrgIZ990ACLcBGAsYHQ/w640-h214/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25881.48.47.png) |
可以增加資料欄位,使用 kotlin 要加入資料型別 |
如何修改 Database 名稱
![](https://1.bp.blogspot.com/-XpEEPNj-h3U/YN__OcPaTRI/AAAAAAAAHCI/JRPmNBgULUY1X1zzk6v0m2URM6gIjuWbwCLcBGAsYHQ/w640-h338/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.07.57.png) |
DATABASE_NAME 參數已經獨立出來放在 Constants.kt |
修改 String 變數即可
![](https://1.bp.blogspot.com/-dHXkq73iTuA/YOAAvMcpzHI/AAAAAAAAHCQ/bRutqTi5vNMn1azoehFgchG49RGpyOvmwCLcBGAsYHQ/w400-h173/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.12.41.png) |
修改成bw7-db |
![](https://1.bp.blogspot.com/-ZpIwYNCN0sg/YOABVUmJ57I/AAAAAAAAHCY/P1Klw7ohxxMbsVTyWIVXyjGTxqhxBANIwCLcBGAsYHQ/s320/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.16.57.png) |
修改結果 |
如何新增資料進入 DataBase ( plants )
SeedDatabaseWorker 透過 Dao 新增資料
![](https://1.bp.blogspot.com/-ENMB9Z3Fk_M/YOADI45SqYI/AAAAAAAAHCo/PTb8UQxkNbMRniKtmmpI4NjoNvFmGQNVQCLcBGAsYHQ/w640-h354/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.26.30.png) |
可以先將程式碼註解,測試自己寫得程式碼 |
![](https://1.bp.blogspot.com/-9EXC8XGwMn8/YOACwU-jrzI/AAAAAAAAHCg/OqCP5lpexuABQay7GCkBAiwiHk8D4158ACLcBGAsYHQ/w640-h64/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.24.49.png) |
新增 Plant 把 toy11 加入 plantList |
![](https://1.bp.blogspot.com/-dzq-dW8vsAE/YOADbXKyYvI/AAAAAAAAHCw/o0n_s2tB5EQgJWJuESHTJvBkd5Tqtc0AgCLcBGAsYHQ/w640-h80/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.27.41.png) |
新增資料 |
addPlantToGarden 如何操作,從 function 傳入自定義的參數
![](https://1.bp.blogspot.com/-5YKoSh--mg4/YOAGfQkGh4I/AAAAAAAAHC4/DL8_VajiyEs-1DtSKPd1RW0E0Wkw2xQAwCLcBGAsYHQ/w640-h74/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.40.49.png) |
可以從 PlantDetailFragment 開始追蹤 |
![](https://1.bp.blogspot.com/-BLPz5p3X0UM/YOAHMIO_ykI/AAAAAAAAHDA/Bm2O61Ft2RISjDix99RpiaFaz-OTML6KgCLcBGAsYHQ/w640-h132/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.43.46.png) |
傳入 PlantDetailViewModel |
![](https://1.bp.blogspot.com/-8LuYAoHziNE/YOAHuHgN8iI/AAAAAAAAHDI/GnM3Y-zisJoSlkgHMRo8IwUKsFVUUQxbgCLcBGAsYHQ/w640-h62/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.46.02.png) |
GardenPlantingRepository |
# 重點
![](https://1.bp.blogspot.com/-Mm2Ho3cLviQ/YOAIQYZSEhI/AAAAAAAAHDQ/zkx-Qh1DyQktie8JhM2dRQrx-xQxbwkoACLcBGAsYHQ/w640-h352/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.47.56.png) |
使用專案提供的 insert 方法,也可以使用 delete (目前沒有使用) |
Sort 排列
![](https://1.bp.blogspot.com/-HI7I_eEjpm8/YOAI7fATpWI/AAAAAAAAHDY/rG5yLqu19tcWSoZXi011zt_KX36-wGwKgCLcBGAsYHQ/s320/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.50.43.png) |
紅框處排列按鈕 |
# 注意 PlantsDao, @Query 以提供多種方法
![](https://1.bp.blogspot.com/-5phprswK1OY/YOAJyAW-RsI/AAAAAAAAHDg/eRFz5_tu04412iTeBYRFQRKnLodgynU9QCLcBGAsYHQ/w640-h382/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.54.29.png) |
getPlants(), getPlantsOrder() 使用 pngId ASC 和 DESC 來調整是升冪還是降冪 |
![](https://1.bp.blogspot.com/-bkH5LyIGCXE/YOAKMLs7rwI/AAAAAAAAHDo/JJcv3L1OTW8X6hkE4d1p2YUqcUYP_RMIACLcBGAsYHQ/w640-h212/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.56.36.png) |
改寫 PlantRepository 不用傳入 growZoneNumber |
# 透過 Button 點選來更新
![](https://1.bp.blogspot.com/-Wcq-ATEqGl8/YOAK6fIkoqI/AAAAAAAAHDw/BRG7TmjBZMYrc_A9xfWdn7kJUTNWG19lgCLcBGAsYHQ/w640-h514/%25E6%2588%25AA%25E5%259C%2596%2B2021-07-03%2B%25E4%25B8%258B%25E5%258D%25882.59.39.png) |
updateData() 來更新 |
#可以下 Debug 斷點查看 growZone.value
結語
可以透過它人的程式碼邏輯,來提升自生能力.
留言
張貼留言