Я пытаюсь отправить различные типы параметров сообщения в API, но это не работает правильно.Любая идея, почему?
Вот мой код.
Сначала я упаковываю свои параметры в простой контейнер и передаю его в качестве параметра в AsyncTask, например:
class MyParams {
var paramName: String = ""
var paramaddress: String = ""
var paramlatitude: Float = 0.toFloat()
var paramlongitude: Float = 0.toFloat()
constructor(funName: String, funAddress: String, funLatitude: Float, funLongitude: Float) {
this.paramName = funName
this.paramaddress = funAddress
this.paramlatitude = funLatitude
this.paramlongitude = funLongitude
}
}
class myClass : AsyncTask<MyParams, Void, String>() {
override fun onPreExecute() {
super.onPreExecute()
}
override fun onPostExecute(httpResponseMsg: String) {
super.onPostExecute(httpResponseMsg)
...
}
override fun doInBackground(vararg params: MyParams): String {
var name = params[0].paramName
var address = params[0].paramaddress
var latuitude = params[0].paramlatitude
var longitude = params[0].paramlongitude
hashMap["name"] = name
hashMap["address"] = address
hashMap["latuitude"] = latuitude
hashMap["longitude"] = longitude
finalResult = httpParse.postRequest(hashMap, HttpURL)
println("responseeeeeeeee-----="+finalResult)
return finalResult
}
}
val params = MyParams(funName,funAddress,funLatitude,funLongitude)
val myTask = myClass()
myTask.execute(params)
Но в этой строке hashMap["name"] = name
я получил следующую ошибку:
Ошибка вывода типа: невозможно определить параметр типа V в потоке встроенного оператора MutableMap.set (ключ: K, значение: V): единица измеренияНи одно из следующих получателей подстановок: Аргументы MutableMap: (String, Params) получатель: Аргументы MutableMap: (String, String) могут быть применены к получателю: Аргументы HashMap: (String, String)