簡體   English   中英

獲取SettingsActivity的ViewModel(MVVM,Android P)

[英]Getting ViewModel for SettingsActivity (MVVM, Android P)

如果您選擇設置時使用模板在Androdi Studio 3.4中創建項目,則將看到示例應用程序,其中SettingsActivity擴展了AppCompatPreferenceActivity擴展了PreferenceActivity擴展了ListActivity擴展了android.app.Activity ,但不是FragmentActivity ,這對於通過SettingsActivity創建ViewModel來說是必需的

SettingsViewModel viewModel

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    viewModel = ViewModelProviders.of(this, viewModelFactory).get(SettingsViewModel.class);
}

因為ViewModelProviders.of()可能僅接受FragmentActivity作為第一個參數。

可以為AppCompatPreferenceActivity創建一個ViewModel還是使用Google的首選項實現地獄的下一個轉生?

此模板已在Android Studio 3.5中完全重做,以匹配“ 設置”文檔

將用戶可配置設置集成到應用程序中的推薦方法是使用AndroidX首選項庫。 該庫管理用戶界面並與存儲進行交互,以便您僅定義用戶可以配置的單個設置。 該庫帶有Material主題,可在設備和OS版本之間提供一致的用戶體驗。

AndroidX首選項庫完全不需要您使用PreferenceActivity您會注意到,它直接使用AppCompatActivity ,將首選項放入PreferenceFragmentCompat 隨着AppCompatActivity擴展FragmentActivity ,您將能夠使用ViewModel和其他AndroidX API而不會出現問題。

暫無
暫無

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

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