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