Вызовите модификацию внутри другого метода и верните результат в основной поток - PullRequest
1 голос
/ 22 мая 2019

напишите этот код:

fun getStoreTitles():List<sample> {
        var responseResult:List<sample>
        responseResult= listOf(sample("","",""))
        val service = getRetrofitInstance()!!.create(GetDataService::class.java)
        val call = service.getAllPhotos()
        call.enqueue(object : Callback<List<sample>> {
            override fun onResponse(call: Call<List<sample>>, response: Response<List<sample>>) {
                responseResult=response.body()!!
                var t=0
            }
            override fun onFailure(call: Call<List<sample>>, t: Throwable) {
                /*progressDoalog.dismiss()*/
                //Toast.makeText(this@MainActivity, "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show()
            }
        });
        return responseResult
}

и хотите вызвать этот метод из основного действия следующим образом:

var responseResult:List<sample>
val FrameWork=StoreTitle()
responseResult=FrameWork.getStoreTitles()

при запуске приложения выполнить модернизацию, выполнить успешно, но ничего не вернутьв responseResult и это null, я думаю, что модификация запустить другой поток, и это причина. Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 22 мая 2019

Обновите ваш метод вызова API:

fun getStoreTitles(callback : Callback<List<sample>>) {
    var responseResult:List<sample>
    responseResult= listOf(sample("","",""))
    val service = getRetrofitInstance()!!.create(GetDataService::class.java)
    val call = service.getAllPhotos()
    call.enqueue(callback);

}

Вы должны позвонить так:

val FrameWork=StoreTitle()
FrameWork.getStoreTitles(object : Callback<List<sample>> {
        override fun onResponse(call: Call<List<sample>>, response: Response<List<sample>>) {
         val responseResult : List<sample>? =response.body()      
         //handle your success
        }
        override fun onFailure(call: Call<List<sample>>, t: Throwable) {
             //handle your failure
        }
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...