android - 构造函数中的默认值显示Kotlin中的错误

标签 android mvvm kotlin

我和herehere一样,但是显示错误

这是我的类(class),它的primary constructor没有secondary constructor没有init块。

class RowSubTShirtViewModel(private val subTShirtAdapter: SubTShirtAdapter, val context: TShirtActivity,
                            val tShirtBean: CommonItemBean, private val parentPosition: Int, private val position: Int) : BaseObservable(), TShirtActivity.setSelectionSubRow {}

创建像val vm=RowSubTShirtViewModel()这样的对象给错误

  • Create abstract function 'RowSubTShirtViewModel'
  • Create function 'RowSubTShirtViewModel'
  • Create secondary constructor
  • No value passed for parameter

最佳答案

您需要将参数显式传递给主构造函数:

//init params
val subTShirtAdapter = ...
val context = ...
val tShirtBean = ...
val parentPosition = ...
val position = ...

//init viewModel
val vm = RowSubTShirtViewModel(subTShirtAdapter, context, tShirtBean, parentPosition, position)

除非您为参数分配默认值,例如:
class RowSubTShirtViewModel(private val subTShirtAdapter = YourAdapter(),...)

在您的情况下,您可以执行以下操作:
class RowSubTShirtViewModel(val context: TShirtActivity, 
    private val subTShirtAdapter: SubTShirtAdapter, 
    val tShirtBean: CommonItemBean, 
    private val parentPosition: Int = 0, 
    private val position: Int = 0) : BaseObservable(), TShirtActivity.setSelectionSubRow {}

// and then create an instance
val vm = RowSubTShirtViewModel(yourContext, yourAdapter, yourShirtBean)

关于android - 构造函数中的默认值显示Kotlin中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53499202/

相关文章:

c# - 将组合框项目源绑定(bind)到这些对象的某些属性

kotlin - 使用 Kotlin WHEN 子句进行 <、<=、>=、> 比较

Kotlin-非单例类的单个实例?

android - 如何使用 ListView 适配器中的单击按钮打开菜单上下文 Android?

Android Q-municate 错误无法解决 : com. efollestad :material-dialog:0. 7.8.1

Android Studio 构建配置

ios - 在 Swift 中使用 ReactiveCocoa 4 观察对象属性

silverlight - 需要帮助设置 MVVM Light ViewModelLocator

java - 如何在 map 中获得 5 个最重复的元素?

android - 在 CollapsingToolbarLayout 中设置 minHeight 没有任何效果