Как удалить кнопку в своем методе onClick?

77
6

Я хочу удалить кнопку в свой собственный метод onClick после ее нажатия. Я пробовал это обычным способом:
<Я > layout.removeView(сохранить);
Но кнопка не будет удалена, и я не получу ошибки. Если я хочу добавить кнопку, я получаю сообщение об ошибке, потому что кнопка уже активизируется.


Я думаю, что он не работает, потому что я пытаюсь удалить кнопку во время его OnClickHandler. Итак, мой вопрос: как удалить кнопку после его нажатия?

спросил(а) 2021-01-25T18:37:33+03:00 5 месяцев назад
1
Решение
117

Здесь полное, полностью протестированное решение:


    Button button = (Button) findViewById(R.id.button1);        
button.setOnClickListener(new OnClickListener() {
public void onClick(View view) {

view.setVisibility(View.GONE);
}
});

Вы также можете полностью удалить представление из макета, как это (также проверено):


    Button button = (Button) findViewById(R.id.button1);        
button.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
ViewGroup parentView = (ViewGroup) view.getParent();
parentView.removeView(view);
}
});

ответил(а) 2021-01-25T18:37:33+03:00 5 месяцев назад
45

Попробуйте установить его состояние с помощью button.setVisibility(Visibility.GONE)

ответил(а) 2021-01-25T18:37:33+03:00 5 месяцев назад
45

Как просто скрыть это? например в вашей кнопке onclick handler вы можете сделать что-то вроде:

button.setVisibility(View.GONE);

ответил(а) 2021-01-25T18:37:33+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема