Кто такой MarkerView? Если наследуемся от MarkerView, то зачем создавать еще раз тот же самый лейаут, layoutid которого передается в MarkerView?
Как в таком случае дойти до элементов?
Не надо отвечать вопросом на вопрос.
В инит что за дичь у тебя происходит?
то что в гугле нашел))
Угу. Какой-то класс из какой-то библиотеки. Значит, нужно смотреть как он устроен внутри. Предоставляет ли он доступ к своим вью и как. Если не предоставляет, то и не надо туда лазать. Ибо не предусмотрено.
Теперь учись пользоваться тем, что нашел 🤪
Это колдунские заклинания чтобы вызвать вью MarkerView )))
Код MarkerView http://pastie.org/p/4HMMCIwQUoJWykfVXTzabV
Можно вызвать findViewById у самого MarkerView. У любого контейнера есть findViewById. Только нужно знать эти id.
Кстати, это кастом вью написано не по уставу.
```class CustomMarkerView( private val runs: List<Run>, context: Context, layoutId: Int ) : MarkerView(context, layoutId) { private var tvDate: TextView = findViewById(R.id.tvDateMW) private var tvDuration: TextView = findViewById(R.id.tvDurationMW) private var tvAvgSpeed: TextView = findViewById(R.id.tvAvgSpeedMW) private var tvDistance: TextView = findViewById(R.id.tvDistanceMW) private var tvCaloriesBurned: TextView = findViewById(R.id.tvCaloriesBurnedMW) }` Вот так?
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Да, так должно сработать. Если такие id есть в этом лейауте.
Сработало,спасибо.
Че за устав?)
Это он про конструкторы)
А ну это конечно да, но мне кажется кастомные все пишут по разному, чего только не увидишь)
Конструктор неправильный.
Не ну если это не планируется использовать с XML, а чисто верстка кодом, то норм)
Как бы есть контракт для вью. Можно его игнорить, как и всё остальное. Компилируется же.
Ну там много какбы конструкторов)
Три штуки (местами было четыре). Но Котлин животворящий позволяет это сделать в виде одного. Так что нет причин не делать правильно 😏
ну я бы не сказал, что это неправильно, скорее неполно)
Обсуждают сегодня