я уже давно не могу найти решение, я не могу его найти.
В классе APIHubble
переменная _PhotoList
остается пустой, когда я выполняю println
на MainActivity
.
Я пытаюсь получить некоторую информацию в файле. json и поместить ее в свой массив с PhotoHubble
в качестве объекта. Мне нужно получить значение моего _PhotoList
Array
, чтобы создать RecyclerView
class APIHubble {
lateinit var requestQueue: RequestQueue
var _PhotoList:MutableList<PhotosHubble> = mutableListOf()
fun launchJsonArrayRequest(context:Context) {
val url = "https://hubblesite.org/api/v3/external_feed/st_live"
requestQueue = Volley.newRequestQueue(context)
val jsonArrayRequest = JsonArrayRequest(url, Response.Listener {
for (itIndex in 0 until it.length()) {
val item = it.getJSONObject(itIndex)
_PhotoList.add(PhotosHubble(
title = item.getString("title"),
pubDate = item.getString("pub_date"),
description = item.getString("description"),
image = item.getString("image"),
thumbnail = item.getString("thumbnail_large")))
}
}, Response.ErrorListener { println("Erreur") })
requestQueue.add(jsonArrayRequest)
}
}
data class PhotosHubble(
var title:String,
var pubDate: String,
var description: String,
var image: String,
var thumbnail: String
)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
APIHubble().launchJsonArrayRequest(this)
println(APIHubble()._PhotoList.size) // 0
ui_photoList.adapter = PhotoAdapter()
ui_photoList.layoutManager = LinearLayoutManager(this)
}
//...
}
Я сделал тест, создал две кнопки и немного подождал бит между нажатием button4
(который запускает функцию) и button5
(печать _PhotoList.size
), результат тот же