@kotlin_lang

Страница 347 из 982
Михаил
26.09.2017
12:07:58
Всем привет, подскажите пожалуйста, относительно Call (Retrofit2) и структуры json. Если у нас есть вот такая модель(https://gist.github.com/lordofprograms/6936dda018b85c81376a8abf38e7e907), вот интерфейс для запроса(https://gist.github.com/lordofprograms/c1414942bed6d1440d50a92329ee6e4a) и класс, где мы получаем ответ от Retrofit(https://gist.github.com/lordofprograms/cd4c529add5f1b5fe6bbfcc84fb8c139), если при данной структуре json файл для этого выглядит так - https://www.reddit.com/top.json , как структура модели для Call должна выглядеть для этого json - https://jsonblob.com/api/07ef0d0e-a2b0-11e7-a649-476e20c07825 ?

Михаил
26.09.2017
12:17:26
Спасибо, за ответ) Но он, вроде, не может выстроить таким образом data class ImagesDataResponse(data: ImagesData) data class ImagesData(images:Image)

Igor
26.09.2017
12:39:04
Спасибо, за ответ) Но он, вроде, не может выстроить таким образом data class ImagesDataResponse(data: ImagesData) data class ImagesData(images:Image)
А тебе весь json нужен? там просто хрелион полей Я раньше пользовался https://timboudreau.com/blog/json/read Он генерит Java классы без сетеров, которые очень одобно IDEA потом трансформи в имутабельные kotlin классы

Google
Konstantin
26.09.2017
12:41:26
Есть плагины которые создают модели по json

Как java классы так котлин классы

Михаил
26.09.2017
12:43:40
Всем спасибо за помощь

Maxim
26.09.2017
12:45:42
Спасибо, за ответ) Но он, вроде, не может выстроить таким образом data class ImagesDataResponse(data: ImagesData) data class ImagesData(images:Image)
все он может, вложенность генерирует более менее адекватно, только названия потом самому иногда поправить надо

Михаил
26.09.2017
12:55:34
Киньте, пожалуйста ссылку, буду благодарен)

Konstantin
26.09.2017
13:01:51
На плагины?

Михаил
26.09.2017
13:19:12
*сайт

Maxim
26.09.2017
13:19:46
На джаве пользовался этим: http://www.jsonschema2pojo.org/ в котлин он походу не умеет

Михаил
26.09.2017
13:21:39
Ага,только Java и Scala

Konstantin
26.09.2017
13:27:36
для джавы вот этот крутой плагин https://github.com/nvinayshetty/DTOnator потом можно джава класс конвертнуть ide в котлин, либо для котлина плагин тоже https://github.com/robohorse/RoboPOJOGenerator единственный минус что он генерит кучу классов и не делает внутренних

Maxim
26.09.2017
13:30:39
Только что попробовал для котлина: https://plugins.jetbrains.com/plugin/9960-jsontokotlinclass Генерирует все правильно и без проблем. Если что, плагин запускается кнопками Alt + K

Михаил
26.09.2017
13:31:30
Отлично, спасибо

Konstantin
26.09.2017
16:31:43
Нужна снова помощь)) https://pastebin.com/Xsk1LYQR почему при обращении к переменной instance возвращается нуль?

Google
Mi
26.09.2017
16:33:38
А просто сделать object App нельзя?

Konstantin
26.09.2017
16:34:59
чему именно? про lazy прочитал в документации что дает потокобезопасную инициализацию, вот и прикрутил)

нет. нужно синглтон, чтобы инжектировать в дагере

c component работает, а с instance не вышло

Тебе кто этому научил?
так и почему не правильно?)

Valeriy
26.09.2017
16:38:51
Можно же просто instance = this в oncreate

Konstantin
26.09.2017
16:39:37
можно так и было, но захотелось на lazy переделать

Sergey
26.09.2017
16:41:07
можно так и было, но захотелось на lazy переделать
Нельзя самому создавать инстанс Application класса

Igor
26.09.2017
16:43:39
так и почему не правильно?)
Выше правильно сказали. Короче на тебе готовый код https://pastebin.com/M5dBxbJu

Konstantin
26.09.2017
16:45:44
а, вот оно как. тогда понятно, всем спасибо за помощь

Valeriy
26.09.2017
16:56:26
companion object { lateinit var instance : App private set }

Igor
26.09.2017
16:58:35
var - absolutely haram

Dmitry
26.09.2017
17:08:34
lateinit var instance: App private set

Igor
26.09.2017
17:17:06
Хм, чувак сверху тоже самое написал и там и тут var

Valeriy
26.09.2017
17:19:44
var - absolutely haram
Так у тебя же тоже вар)

Igor
26.09.2017
17:20:23
Но он полностью приватный, а наружу торчит val

Valeriy
26.09.2017
17:21:10
А разница?

Михаил
26.09.2017
17:24:27
И снова возник вопрос

Кто-то реализовывал Endless RecyclerView из Keddit от juanchosaravia( https://github.com/juanchosaravia/Keddit )?

Google
Dmitry
26.09.2017
17:32:13
Хм, чувак сверху тоже самое написал и там и тут var
не увидел с мобилы private set, пардон

Но он полностью приватный, а наружу торчит val
так в примере с приват сеттером - тож самое, только без лишнего поля

Михаил
26.09.2017
17:34:29
в примере @angmarr instance - это val поле (работа с ним идет именно как с неизменяемым полем), в примере с var... private set instance - это var (соответственно, работа с ним идет как с изменяемым полем)

Igor
26.09.2017
17:34:58
Ну сколько можно объяснять ?, оно везде будет как мутабельное отображаться https://i.gyazo.com/df0f384106307702677508110c6822c4.png

Valeriy
26.09.2017
18:52:13
Если это вся разница то это ничего не меняет

Лично я на Котлин пришел ради читабельности кода

А когда ради одной проперти делаешь две это уже такое чето

Михаил
26.09.2017
19:12:30
Если это вся разница то это ничего не меняет
Ну еще компилятор будет считать, что твой instance ты мог где-то когда-то еще изменить, поэтому в некоторых случаях (в частности, если проперти nullable) тебе придется писать ненужный код и заботиться об обработке этих некоторых случаев (что проперти != null)

Quantum Harmonizer
26.09.2017
19:53:25
Application.instance не нужно

Михаил
26.09.2017
20:08:54
Кстати, всем, ещё раз, спасибо за советы, всё заработало с пагинацией ресайклера

Но есть один нюанс. Подскажите, пожалуйста, как прекратить подгружать айтемы в Endless RecyclerView, если список кончился, в голову приходит вариант добавить поле id

Какие есть альтернативы?

Quantum Harmonizer
26.09.2017
20:12:48
либо знать, сколько всего страниц, либо остановиться, когда приходит пустой результат

Роман
26.09.2017
20:15:06
Часто в заголовках ответа бывает колличество страниц, легче конечно ждать пустой ответ

Михаил
26.09.2017
20:16:31
Не приходит пустой результат, оно его с начала начинает отображать

JRoot3D
27.09.2017
08:41:15
Здравствуйте! Очередной нубский вопрос по Anko. у меня есть verticalLayout в котором 3 кнопки, как можно им сделать Borderless стиль?

JRoot3D
27.09.2017
08:43:15
да

Это кнопка, у которой style="?android:attr/borderlessButtonStyle" ?
каждой кнопке прописать такое поле?

Quantum Harmonizer
27.09.2017
08:44:32
да
посмотри, как сделана функция horizontalProgressBar в Anko — то же самое, думаю, нужно сделать с кнопкой, только другой стиль передать

Google
Quantum Harmonizer
27.09.2017
09:03:19
оказалось возле button есть themedButton...
мне кажется, тема здесь не поможет

JRoot3D
27.09.2017
09:03:57
понятно...

Евгений
27.09.2017
09:06:42
Я делал свой AppBar, там кнопки (навигаци, поиск) - ImageView, спокойно повесил background = ?selectableItemBackgroundBorderless. Тоже самое можно сделать для TextView

Ну, т.е. вместо Button юзать TextView, это позволяет более гибко настраивать внеший вид



JRoot3D
27.09.2017
09:44:05
Спасибо!

Роман
27.09.2017
09:53:49
ребят никто не сталкивался? есть кастомная вьюшка, вложена в xml внутри фрагмента, так вот внутри вью никак не видит компоненты через котлтн екстеншен

Роман
27.09.2017
09:55:30
import kotlinx.android.synthetic.main.fragment_fuel_report.view.*

это файл xml фрагмента

на ctrl я легко в него перехожу

влияеть ли visibility gone

Quantum Harmonizer
27.09.2017
10:04:01
Роман
27.09.2017
10:04:30
также как и свойсво парент периоически null



Роман
27.09.2017
10:20:05
нет, что там должно быть

Quantum Harmonizer
27.09.2017
10:22:58
в каком смысле «не находит»?

Роман
27.09.2017
10:23:09
null

Google
Quantum Harmonizer
27.09.2017
10:25:18
null
а по факту он там есть?

Роман
27.09.2017
10:25:45
снаружи есть

как на скрине я показал

Quantum Harmonizer
27.09.2017
10:26:09
снаружи есть
тогда с чего бы его должно было находить?!

Роман
27.09.2017
10:26:53
я думал он в контексте всей вью работает

Quantum Harmonizer
27.09.2017
10:27:40
в одной иерархии вьюх может быть несколько вьюх с одинаковыми Id

Роман
27.09.2017
10:30:55
ок, фенкс

Лёша
27.09.2017
10:44:11
В кастомных вью сделали поддержку синтетик недавно И включается через прописывание в градле

Минутку, поищу ссылку

Прошу прощения, ложная инфа Поддержку сделали в ViewHolder'ах В кастомных вью должно из коробки работать

https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out Раздел Android Extensions plugin enhancements Android Extensions plugin now supports not only Activities and Fragments, but also custom Views and even custom layout containers such as a ViewHolder. 

Sergey
27.09.2017
11:47:03
как у вас с let экстеншенами? не злоупотребляете?



у меня бывает часто вот такая колбаса кода

и чет сомневаюсь окей ли я делаю

Quantum Harmonizer
27.09.2017
11:49:29
вполне норм

Страница 347 из 982