iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0

昨天思考了一下
覺得我用威秀影城的內容來循序漸進的帶著大家練習及實作
希望鐵人賽結束後可以做出一個威秀影城的 App 喔~ XD
威秀快來找我談外包~~ 哈~
以下先聲明,資料都是威秀官網上的
並無下載存檔或再修改,Json File 都是自己一筆一筆複製輸入的
以上如有任何法律上的問題,還請各位幫忙提醒我一下,謝謝


言歸正傳
我們昨天學會了更換 HeaderSupportFragment 的背景和 RowsSupportFragment 裡加上 icon
https://ithelp.ithome.com.tw/upload/images/20200926/20107165Ijvjh2HNl9.png
今天就來加入內容吧!!

建立並讀取資料

首先先把今天的 Json File 下載下來放到 raw 資料夾中,如下圖
https://ithelp.ithome.com.tw/upload/images/20200926/20107165IPKWou5Jvt.png
然後要在 MainFragment 中把 Json 讀出來
下面這個 function 就是負責把 Json 內容讀出來
讀出來後可以用 Log 來看一下是否真的有讀到

fun getMovieList(){
    val jsonFileString: String = resources.openRawResource(R.raw.day12).bufferedReader().use { it.readText() }
    if(BuildConfig.DEBUG) Log.d(TAG, "jsonFileString: $jsonFileString")
}

建立 Model

第8天時教的第二個小技巧,"如何將 Json 資料快速生成 Kotlin Data Class" 這方法大家可以複習一下,這邊就不再多做教學,不知道的這個方法的記得回去看喔
將 Json 資料複製下來,創建成 MovieList 這個 Model,如下圖
https://ithelp.ithome.com.tw/upload/images/20200927/20107165dOHgvpuQn4.png

使用 Gson 套件來生成 Model

  1. 首先開啟 App 底下的 build.gradle
  2. 在 dependencies 中加入 com.google.code.gson:gson:2.8.6
  3. Sync Now
  4. 在剛剛 getMovieList() 這個 function 中加入以下片段
mMovieList = Gson().fromJson(jsonFileString, MovieList::class.java)
if(BuildConfig.DEBUG) Log.i(TAG, "mMovieList: $mMovieList")

資料取得了
我們明天來塞到畫面上吧


上一篇
Day 11 - BrowsSupportFragment Part1
下一篇
Day 13 - ArrayObjectAdapter & Presenter
系列文
宅經濟起飛,想當顆沙發馬鈴薯嗎??智慧電視會是未來的趨勢嗎??讓我們一探 Android TV 的神秘世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言