Массив остается пустым - PullRequest
       3

Массив остается пустым

0 голосов
/ 16 апреля 2020

я уже давно не могу найти решение, я не могу его найти.

В классе 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), результат тот же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...