【问题标题】:Using Activity ktx with viewmodel and java将 Activity ktx 与 viewmodel 和 java 一起使用
【发布时间】:2021-01-18 14:13:35
【问题描述】:

我有一段代码需要使用活动库来实例化我的视图模型,我尝试在 java 中这样做,但似乎没有什么对我有用

  • 这是 kotlin 中的代码,我想将其转换为 java
   mainViewModel : MainViewModel by ViewModels()

【问题讨论】:

  • 如果你想在 Java 中使用类似于 kotlin 文档建议的委托,我猜你可以使用:private val viewModel by viewModelProvider { (applicationContext as YourApp).component.MainViewModel() }

标签: java kotlin viewmodel


【解决方案1】:

在 Java 中,在 onCreate 方法中使用 ViewModelProvider

private MainViewModel mainViewModel;
 
public void onCreate(Bundle savedInstanceState) {
    mainViewModel  = new ViewModelProvider(this).get(MainViewModel.class);
}

https://developer.android.com/topic/libraries/architecture/viewmodel#implement

【讨论】:

  • 谢谢你的回答,我是这样知道的,但是因为在活动库文档中,它们提供了用于 kotlin 的活动 ktx 以及用于 java 的活动(没有 ktx),那么后者?
  • 这就是我所说的developer.android.com/jetpack/androidx/releases/activity,正如您在 kotlin 中初始化视图模型所看到的那样,我们使用活动 ktx,但对于 java,它们提供了正常的
  • @takieddine 通常ktx库依赖于Java库并为Kotlin提供扩展功能,例如androidx.activity:activity-ktx依赖于androidx.activity:activity并提供Kotlin扩展如viewModels
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 2019-02-21
  • 2013-11-20
  • 1970-01-01
相关资源
最近更新 更多