val viewModel by lazy { ViewModelProviders.of(this).get(PlaceViewModel::class.java) } 这段代码已经被弃用,请帮我使用by lazy修改成可用的写法
时间: 2024-02-05 15:11:31 浏览: 141
使用by lazy修改后的代码如下:
```kotlin
val viewModel: PlaceViewModel by lazy { ViewModelProvider(this).get(PlaceViewModel::class.java) }
```
注意,这里使用了`ViewModelProvider`替代了`ViewModelProviders`,因为`ViewModelProviders`已经被弃用了。
相关问题
val viewModel by lazy { ViewModelProviders.of(this).get(PlaceViewModel::class.java) } 这段代码已经被弃用,请帮我修改成可用的写法
好的,这段代码可以修改成如下所示的写法:
```
val viewModel: PlaceViewModel by viewModels()
```
需要注意的是,使用这种写法需要在项目的 build.gradle 文件中添加如下依赖:
```
implementation 'androidx.fragment:fragment-ktx:1.3.5'
```
同时,需要将原来的 `import androidx.lifecycle.ViewModelProviders` 修改为 `import androidx.fragment.app.viewModels`。
val viewModel by lazy { ViewModelProviders.of(this).get(PlaceViewModel::class.java) 这段代码一直报错,请帮我修改一下 }
可能是因为你没有导入 ViewModelProviders 类。请尝试在文件头部添加以下导入语句:
```
import androidx.lifecycle.ViewModelProviders
```
如果问题还存在,请再提供一下具体的错误信息和上下文,这样我才能更好地帮助你。
阅读全文