#java #android
#java #Android
Вопрос:
у меня есть кнопка 5 как btn1, btn2, btn3, btn4, btn5 и целочисленная переменная как numberInt
я хочу, чтобы при изменении numberInt на число кнопка с этим номером становилась невидимой следующим образом:
if (number == 1){
btn1.setVisibility(View.GONE);
}else if (number == 2){
btn2.setVisibility(View.GONE);
есть ли какой-либо способ использовать numberInt в конце ключевого слова ‘btn’? потому что сложно писать циклы if, когда кнопок слишком много.
Извините за плохое объяснение.
Комментарии:
1. Поместить кнопки в массив или список?
Ответ №1:
Поместите все кнопки в список
List<Button> buttons = new ArrayList();
buttons.add(btn1);
buttons.add(btn2);
затем ссылайтесь на них по индексу
buttons.get(number);
Невозможно создать идентификатор во время выполнения, например
btn${number}.setVisibility(View.GONE); // not valid java
Вы можете делать подобные вещи на некоторых языках сценариев, но не на Java.
Ответ №2:
Вам не нужно использовать ‘If loop’, если все ваши кнопки помещены в массив. Поскольку массивы имеют ‘int’ в качестве индекса, который можно использовать в ваших интересах.
Button[] buttons = {btn0, btn1, btn2, ...};
используйте метод, как показано ниже, чтобы обновить видимость представления
public void setInvisibleButton(int i){
buttons[i].setVisibility(View.GONE)
}