Массив кнопок Kotlin

#android #arrays #kotlin #button

#Android #массивы #котлин #кнопка

Вопрос:

Я действительно надеюсь, что на этот вопрос еще не везде дан ответ, но каждый поиск, похоже, сосредоточен на слушателях и других видах использования массива кнопок, но я хочу также использовать его для форматирования всех кнопок одновременно (активировать, деактивировать и т. Д.)

Итак, вот что я пробовал;

 val buttons = arrayOf(btn1,btn2,btn3,btn4)
 

Это будет работать, НО изменит только одну кнопку

 buttons[0].isEnabled=true; // 
 

Тогда это та часть, с которой я борюсь;

 buttons[0..buttons.size].isEnabled=true;
 

В основном ответ заключается в том, что он ожидает одно число, а не диапазон.

Я тоже пытался;

 buttons[].isEnabled=true;
 

Ответ заключается в том, что для этого требуется индекс

Я тоже пытался

 buttons.isEnabled=true;
 

Это, конечно, не разрешится должным образом

Мой ключевой вопрос на самом деле заключается в том, могу ли я применить изменения форматирования / состояния ко всем, используя массив, или мне всегда придется делать это для каждой кнопки по очереди?

Я думаю, что можно было бы создать цикл, но это не тот маршрут, по которому я хотел бы следовать здесь, если есть альтернатива

Ответ №1:

Не думай, что есть какой-то выход, приятель. Вы должны зацикливаться, и независимо от того, какой синтаксический сахар имеет язык, в конце он все равно остается циклом for .

Вы могли бы сделать:

 buttons.forEach {
    it.isEnabled = true
}
 

Комментарии:

1. Означает ли «это», что оно должно быть заменено чем-либо? Как счетчик? Если я использую код в соответствии с вашим предложением, ссылка «включено» больше не разрешается

2. @Karl Griffiths пожалуйста, посмотрите мой обновленный ответ, извините, что использовал неправильное свойство, должно быть isEnabled , а не enabled

3. дох! Я тоже должен был это заметить. Спасибо. Кроме того, вы правы, это такой же цикл, как и любой другой, и, в конечном счете, то, что я описывал по мере необходимости, у меня в голове был гораздо более подробный обзор цикла, чем того стоило бы, чего я хотел избежать. Я понятия не имел, что смогу написать это так просто. Спасибо за вашу помощь

4. @Karl Griffiths без проблем, приятель, и Kotlin, на мой взгляд, синтаксически очень «сексуальный» язык по сравнению с Java и даже C #. Но да, по мере того, как вы будете больше изучать язык, он будет расти для вас еще больше 😄