获取用于SettingsActivity的ViewModel(MVVM,Android P)

时间:2019-05-21 05:19:48

标签: android android-preferences android-viewmodel android-mvvm viewmodelproviders

如果您选择设置在Androdi Studio 3.4中创建项目的模板,则会看到示例应用程序,其中SettingsActivity扩展AppCompatPreferenceActivity扩展PreferenceActivity扩展{{ 1}}扩展了ListActivity,但没有扩展android.app.Activity,这是通过{p>为FragmentActivity创建ViewModel所必需的

SettingsActivity

因为SettingsViewModel viewModel @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); viewModel = ViewModelProviders.of(this, viewModelFactory).get(SettingsViewModel.class); } 只能接受ViewModelProviders.of()作为第一个参数。

是否有可能为FragmentActivity创建一个ViewModel,还是Google的下一个下一个地狱化身?!

1 个答案:

答案 0 :(得分:2)

此模板已在Android Studio 3.5中完全重做以匹配Settings documentation

  

将用户可配置设置集成到应用程序中的推荐方法是使用AndroidX首选项库。该库管理用户界面并与存储进行交互,以便您仅定义用户可以配置的单个设置。该库带有Material主题,可在设备和操作系统版本之间提供一致的用户体验。

AndroidX Preferences Library完全不需要您使用PreferenceActivity-您会注意到它直接使用AppCompatActivity,将首选项放入PreferenceFragmentCompat中。随着AppCompatActivity扩展FragmentActivity,您将可以使用ViewModel和其他AndroidX API,而不会出现问题。