У меня проблема с AsyncTask в Kotlin, я на самом деле новичок, поэтому, пожалуйста, будьте клевыми:)
Так что проблема здесь в том, что я хотел бы использовать значение результата, которое находится в onPostExecute (), в другом классе
Позвольте мне показать вам мой код. Вот класс ProviderAsync () в моем файле Provider.kt (я просто создаю массив Hashmap, который я хочу использовать):
class ProviderAsync() : AsyncTask<HashMap<String, Any>, Void, ArrayList<HashMap<String, Any>>>() {
var allThings: ArrayList<HashMap<String, Any>> = arrayListOf()
override fun doInBackground(vararg params: HashMap<String, Any>): ArrayList<HashMap<String, Any>>? {
for (i in 0..2000) {
val thing = hashMapOf("Loc" to "fr", "name" to "class", "Id" to "23", "tuto" to "fr", "price" to 44)
allThings.add(thing )
}
return null
}
override fun onPreExecute() {
super.onPreExecute()
// ...
}
override fun onPostExecute(result: ArrayList<HashMap<String, Any>>?) {
super.onPostExecute(result)
// what can I do Here
}
А теперь вот мой метод getThings () в другом файле, где я хочу использовать значение результата, чтобы получить все элементы моего Arraylist:
fun getThings(context: Context) {
ProviderAsync().execute()
var values = // Here i want the RESULT send from my AsyncTask
for (i in 0..values.size) {
var myObject = convertToMyObject(values[i])
allTickets.add(myObject)
}
}
Спасибо и извините за мой английский