自定义视图ChipTabView缺少工具使用的构造函数:(上下文)或(上下文,属性集)或(上下文,属性集,整数)Kotlin

wmvff8tz  于 2022-11-25  发布在  Kotlin
关注(0)|答案(2)|浏览(191)

嘿,我试图在自定义视图类中传递参数。它给出警告自定义视图ChipTabView缺少工具使用的构造函数:(Context)或(Context,AttributeSet)或(Context,AttributeSet,int)。我不想使用suppressLint如何删除此警告可以有人帮助我。我试图此Custom view is missing constructor used by tools for adapter我不想更改Android工作室的设置。我需要正确的解决方案如何以干净的方式实现这一点。提前感谢

class ChipTabView @JvmOverloads constructor(
    context: Context,
    private val number: Int,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
jdzmm42g

jdzmm42g1#

删除private val number: Int以使构造函数参数符合布局inflater要求。
您可以使用setter函数将值传入自定义视图。

nle07wnf

nle07wnf2#

创建您自己的唯一辅助构造函数,如下所示

class ChipTabView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
    private var number: Int = 0         

    constructor(number: Int, context: Context, attrs: AttributeSet? = null, defStyleAttribute: Int = 0) : this(context, attrs, defStyleAttribute) {
        this.number = number
    }
}

相关问题