簡體   English   中英

mvvm中的Android ViewModel管理

[英]Android ViewModel management in mvvm

我正在創建一個示例應用程序( Last-Mvvm ),以使用Android數據綁定學習(並可能顯示)mvvm模式的用法。

我的ViewModel對象里面有一個活動。 我還有一個RecyclerView適配器,其中包含一個項目的數組列表,這些項目被轉換為另一個Viewmodel。 我想將列表的狀態保存在適配器內(用於旋轉更改)。
所以:我應該在哪里保存它? 活動里面? 還是在活動的viewModel中? 或者別的地方?

另外,還有另一件事並不清楚。
直接從viewModel執行rest調用(通過Retrofit )或數據庫調用是否合適(因為我會使用接口),還是最好做成一個視圖(活動)實現並執行所有調用的接口?

我會盡力解釋

第一 所以:我應該在哪里保存它? 活動里面? 還是在活動的viewModel中? 或者別的地方?

第二 直接從viewModel執行rest調用(通過Retrofit)或數據庫調用是否合適(因為我會使用接口),還是最好做成一個視圖(活動)實現並執行所有調用的接口?

關於文章的例子。

在架構下面你可以看到執行OnClickListenerOnLongClickListenerRecyclerView項目。 架構

  • 點線是一個鏈接
  • 實線是一種方法調用

這個怎么運作

  1. ViewHolderWrapper用作ClickListener根視圖的ViewHolder 根據實現, ViewHolderWrapper可以作為HolderClickObservable代理,或者取決於SelectionHelperViewHolderWrapper可以手動突出顯示選定的項目。
  2. SelectionHelper負責保存選擇狀態並通知SelectionObserver有關更改。
  3. 偵聽器(在這種情況下為適配器)負責突出顯示所選項目和進行更新。

總結

第一 您可以使用onSaveInstanceState()onRestoreInstanceState()方法通過活動恢復適配器狀態。

第二 您需要創建輕量級的ViewHolder,它僅負責綁定要查看的數據。 可以在適配器或活動上執行操作。

另請參閱示例應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM