【发布时间】:2017-10-30 01:52:06
【问题描述】:
我是 Android 开发新手(6 个月前开始),想从 Java 迁移到 Kotlin。我已将我的项目转换为 Kotlin 并修复了除一个之外的所有问题,但我不知道如何解决它。
我正在尝试检索 JSONArray(如 JsonManager 类中所示)并通过方法调用在名为 DataDisplayPage 的第二个类中使用检索到的数据。
我收到以下控制台错误,发生在第二类的这一行:jManager.fetch_data{ theJsonArray ->。
无法推断此参数的类型。请明确指定。
类型不匹配:推断类型为 (???) -> 单位,但应为 OnTaskCompleted
一级JsonManager
interface OnTaskCompleted {
fun onTaskCompleted(theJsonArray: JSONArray)
}
class JsonManager {
var listener: OnTaskCompleted? = null
init {
Log.d("JsonManager", "Instance created")
}
fun fetch_data(callback : OnTaskCompleted) {
listener = callback
val url ="https://someURL"
AndroidNetworking.get(url)
.build()
.getAsJSONArray(object : JSONArrayRequestListener {
override fun onResponse(response: JSONArray) {
listener?.onTaskCompleted(response)
}
override fun onError(anError: ANError) {
Log.d("error", anError.toString())
}
})
}
二等数据显示页面
class DataDisplayPage : AppCompatActivity()
fun onStartUp() {
val jManager = JsonManager()
jManager.fetch_data{ theJsonArray ->
val newData = DepData()
newData.setCellData(theJsonArray as JSONArray)
}
}
}
【问题讨论】: