Удалите LinearLayout с помощью кнопки, которая находится внутри этого LinearLayout - PullRequest
0 голосов
/ 09 мая 2020

Я создал собственный линейный макет в студии android. Этот макет автоматически преобразуется в другой вертикальный макет. Теперь я хочу отобразить кнопку внутри этого макета, которая может удалить весь объект. Вот мой макет:

screenshot

И, как вы можете видеть, кнопка «УДАЛИТЬ ЗДЕСЬ» должна удалить 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)

Проблема для меня в том, как удалить объект с кнопкой? Я пробовал использовать alarmCards.removeView (this) в btnDelete.setOnClickListener (), но он вылетает. : (

Спасибо !!

1 Ответ

1 голос
/ 09 мая 2020

Попробуйте следующее:

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