Как я могу удалить Button своим собственным методом onClick? - PullRequest
2 голосов
/ 28 августа 2011

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

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

Ответы [ 3 ]

6 голосов
/ 28 августа 2011

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

    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);
        }
    });   
0 голосов
/ 28 августа 2011

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

button.setVisibility(View.GONE);
0 голосов
/ 28 августа 2011

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

...