setOnClickListener(::addNickname) fun addNickname(button: …
при каждом клике кнопки ищется ЕдитТекст и ТекстВью. Найти можно 1 раз и потом использовать когда нужно
и разница в итоге будет примерно никакая
addNickName(view аргумент не вижу чтоб использовался
используется
неужели лучше каждый раз, обращаясь к вьюхе, искать ее с помощью findViewById?
Вместо findViewById использовать view binding
всё равно кнопка после нажатия прячется. Что так один раз, что так
opinion-based
сохранения состояния не хватает
да, согласен, спасибо большое!
но тут есть 2 вопроса 1) Может войти в привычку, что не желательно 2) Если тут вьюхи всего 2 и макет кажется простым, то на каких то сложных макетах при десятке поисков может зафризится приложение
hiding the keyboard в отдельный метод бы.
экстеншн
+
Зачем?
1) ну тут всё сводится к тому, что надо думать головой. Каждый раз 2) а так за старте зафризится :)
потому что котлин?))
ну лучше на старте 1 раз, чем потенциально много во время использования :) имхо
И что? На скрине не увидел предпосылок для создания экстеншена, метода вполне хватит.
подожди, а какие нужны предпосылки и чем экстеншен не метод?
fun AppCompatActivity.hideKeyBoard(){ val view = this.currentFocus if (view != null) { val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0) } что-то типа этого имеете в виду?
Это сугубо личное восприятие, я определяю предпосылки создания экстеншена из того как я понимаю идею этой фичи. Для меня экстеншен - это фича, которая помогает добавить функциональность там, где ты её сам не можешь добавить по какой - то причине, а хочешь. Вон, у человека есть Activity, и он прячет на ней клавиатуру. Он находится внутри самой Activity, никакой экстеншен ему не нужен чисто технически. Он использует метод Activity getSystemService, всё под рукой, просто берёшь и пишешь внутренний метод. Экстеншн под капотом создаёт статический метод, нахрен ему статический метод в этом случае? Другое дело, если тебе нужно вызвать метод сокрытия клавиатуры извне откуда - то, с фрагмента условно. Я не могу залезть в Андроидовскую Activity и написать публичный метод там, и в написанную Activity я тоже лезть не хочу, и писать публичный метод там не хочу, т.к эта Activity например в другом модуле валяется и написана не мной, придётся добрасывать ещё в хрен пойми куда и проходить ревью у хрен пойми кого. В этом случае я пишу экстеншен где - нибудь у себя, и всё ок, все довольны. Повторюсь, сугубо имхо ок. Я понимаю что сейчас помимо адекватных людей набегут и те кто экстеншен хуярят при первом удобном случае над всем вообще чем можно, из разряда "бля мне надо один раз написать метод чтобы сделать первую букву строки большой, пишу fun String.firstCharToUpCase() нихуя я батя", мне вам сказать нечего сори.
> нахрен ему статический метод а нахрен инстанс-метод?) В данном случае никакой разницы. > те кто экстеншен хуярят при первом удобном случае над всем вообще чем можно eto ya
Стикер
> бля мне надо один раз написать метод чтобы сделать первую букву строки большой, пишу fun String.firstCharToUpCase() нихуя я батя В stdlib есть экстеншн, capitalize называется)
та честно, в мире где екстеншен это сахар над статик методом уровня утилзов, лучше екстеншен, хоть найти можно из контекста сущности, а не ресерчить утилс пекедж
Нахрен тогда вообще нужны инстанс методы?))00 В любой непонятной ситуации хуярим экстеншен и нормалды. Плохо чтоль? Хорошо. Для меня крч это скорее вопрос дисциплины больше: использовать экстеншены только тогда, когда нужно запилить торчащий наружу функционал(или функциональность, вечно путаю, пощадити эксперти) для внутреннего(читай, не доступного для тебя по каким- то причинам) класса. Поэтому я и доебался до экстеншена в том конкретном случае c клавиатурой. Когда я узнал про экстеншены я долго пытался для себя понять, когда их нужно юзать. Наблюдая сейчас за своим рабочим проектом и наблюдая ебучую мешанину из экстешенов и инстанс методов(найс определение метода, зобрал ksta) у меня ощущение складывается, что только я над этим вопросом и думал.
так, а экстеншен, который приватный в файле, или приватный инстанс-экстеншен — это тоже срёт в скоуп?)
Не срёт, а зачем он такой нужен? Потому что красиво? Имхо это злоупотребление фичей. =( Меня тригерит что он развернётся в статический метод, который и нахрен не нужен по факту.
почему статические метод плохо?)
там же оптимизации есть внутри файлов, не?
Я не говорил что статический метод это плохо, я говорил что он тут лишний. А лишний - это уже плохо само по себе.
Ну, мб.
дык а почему инстанс-метод менее лишний?)
может вообще эта функциональность бизнесу не так и нужна?) больше кода - больше багов, дольше билды
Инстанс метод это наипростейший из способов запилить новый функционал. Статик - сложнее. Поэтому он более лишний.
Принял.
Обсуждают сегодня