#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 #. Но да, по мере того, как вы будете больше изучать язык, он будет расти для вас еще больше 😄