[英]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.