как получить доступ к переменным с похожими именами в java

#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)
}