Как я не могу нажать на несколько кнопок вместе? - PullRequest
0 голосов
/ 03 сентября 2018

enter image description here

Мое приложение имеет 3 кнопки, как показано выше. Я хочу, чтобы одна кнопка была нажата, а две другие были отключены. Как мне это сделать?

Это мой код MainActivity.java:

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        button1.setSelected(!button1.isSelected());
    }         
});

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {        
        button2.setSelected(!button2.isSelected());
    }
});

button3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        button3.setSelected(!button3.isSelected());
    }
});

Ответы [ 3 ]

0 голосов
/ 03 сентября 2018

Установите переменную для каждой кнопки, которая будет хранить информацию о том, была ли кнопка нажата (или затем нажата снова).
Затем, нажимая каждую кнопку, установите эту переменную в текущее состояние кнопки,
и соответственно установите состояние других кнопок.

Код:

Boolean isButtonOnePressed = false
button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            isButtonOnePressed = !isButtonOnePressed
            button2.setEnabled(!isButtonOnePressed)
            button3.setEnabled(!isButtonOnePressed)
        }

    });

Вы также можете рассмотреть возможность использования кнопки ToggleButton, а затем при каждом нажатии -
просто проверяю, нажата ли одна из кнопок.

0 голосов
/ 04 сентября 2018
  button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            button2.setEnabled(false);
            button3.setEnabled(false);

            }

    });

    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            button1.setEnabled(false);
            button3.setEnabled(false);
        }
    });

    button3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            button1.setEnabled(false);
            button2.setEnabled(false);;
        }
    });

}
0 голосов
/ 03 сентября 2018

тр это. это для button1 вы можете реализовать и для двух других

button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                button1.setSelected(!button1.isSelected());
                button2.setVisibility(Vew.GONE); // this will disappear your buttons
                button3.setVisibility(Vew.GONE);
                button1.setEnable(false); // to disable the button for further clicks 

                }

        });

если вы хотите отключить только ваши кнопки, тогда вызовите этот setEnable вместо метода setVisibilty

...