首页 > 解决方案 > 使用按钮删除 LinearLayout,该按钮位于此 LinearLayout 内

问题描述

我在 android studio 中创建了一个自定义线性布局。此布局以编程方式膨胀为另一个垂直布局。现在我想在这个布局中映射一个按钮,它可以删除整个对象。这是我的布局:

截屏

如您所见,“在此处删除”按钮应删除 3 个项目,时间、工作日和按钮本身。

这是我的课,在这里

class AlarmCard @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyle: Int = 0,
    defStyleRes: Int = 0,
    ) : LinearLayout(context, attrs, defStyle, defStyleRes) {

    init {
        LayoutInflater.from(context)
            .inflate(R.layout.alarmcard, this, true)

        btnDelete.setOnClickListener(){
           **/* Call destructor or remove view !?!*/**
        }
    }
}

它被添加到线性布局中:

 val monday = AlarmCard(this)
 alarmCards.addView(monday)

问题是我如何用按钮删除对象?我尝试在 btnDelete.setOnClickListener() 中使用 alarmCards.removeView(this) 但它崩溃了。:(

谢谢!!

标签: androidandroid-layoutkotlin

解决方案


尝试这个:

btnDelete.setOnClickListener {
    (getParent() as? ViewGroup)?.removeView(this@AlarmCard)
}

推荐阅读