Android Kotlin - конвертируйте jsonArray в Array <String> - PullRequest
0 голосов
/ 12 декабря 2018

Я получаю массив из API:

val pics = response.getJSONArray("pics")

pics содержит как:

["https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/19\/55\/497173801955.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/10\/34\/242830811034.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/86\/23\/808728238623.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/90\/41\/146747399041.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/47\/41\/672475854741.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/63\/94\/771076926394.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/36\/42\/182330463642.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/29\/96\/948397532996.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/82\/54\/761385508254.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/41\/42\/142837364142.jpg","https:\/\/www.bla.com\/extern\/v\/pics\/mitte\/66\/25\/215324906625.jpg"]

Мне нужно получить это в ArrayList<String>

Это одна из нескольких попыток после преобразования JAVA-решений в kotlin:

val list = ArrayList<String>()
for (i in 0 until pics.length()) {
   list.add(pics.getJSONObject(i).getString("name"))
}

А потом, когда я пытаюсь использовать list в ViewPager, я получаю несоответствие типов:

Required: Array<String>

Found:kotlin.collections.ArrayList<String

Как это сделать ??

Почему все это не может быть просто простым array (), как в PHP SMH, все это раздражает

1 Ответ

0 голосов
/ 12 декабря 2018

Array<String> и ArrayList<String> - 2 разных типа.

Вам нужно предоставить Array<String>, но на самом деле вы предоставляете ArrayList<String>.

val list = Array(pics.length()) {
    pics.getString(it)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...