Android APP Day 20 實戰 JLPT Grammar Trainer - Fragment with Data Binding

 GitHub


在設定這邊, 做了一個 問題匯入的按鍵,

來將 txt 問題集 匯入到 database,


運用之前

Day 14 實戰 JLPT Grammar Trainer - v0.09 MVVM 架構


我們在匯入時, 將按鍵 diable, 並顯示 處理中. 

同時 progress bar 轉動. 

等到 匯入完畢後, 顯示 完成, 並將按鍵 enable


首先將 fragment_setting.xml

用 layout 包起來, 並加入 <data>


這邊的 q_dvm 在 FragmentSetting.java

是在 物件生成時 傳入


Java 本身並沒有 call by reference, 而是 call by value, 

物件其實是 copy 了一份. 

但我們用來判斷的變數 isLoading 是需要只有一個, 所以使用了 final 來提升效率

https://en.wikipedia.org/wiki/Final_(Java)



在 importFromTxtFile, 是啟動另一個 thread 來處理, 這樣不會卡住 UI. 


而模擬時間延遲, 我們讓此 thread 睡 10 秒後 再結束




執行命令前將 isLoading 設為 true, 處理完後呼叫 callback function, 

並將 isLoading 設為 false. 


在相應的 xml, 可以用 q_dvm.isLoading 來判斷是否顯示progress 或啟用按鍵





而 fragment 在data binding連結時: 

要改用 DataBindingUtil.inflate(), 並將 view 用 binding.getRoot() 傳回去. 


執行結果








留言

熱門文章