【发布时间】:2021-03-31 06:32:14
【问题描述】:
我正在执行来自 API 的 HTTP 请求,该请求为我提供了 JSON 数组,我已经能够解析它,但我无法将其转换为列表或数组以便在微调器中设置它。这是我尝试过的:
HTTP 调用:
private fun initiate() {
var product = 1
val httpAsync = "https://link_here"
.httpGet()
.responseString { request, response, result ->
when (result) {
is Result.Failure -> {
val ex = result.getException()
println(ex)
}
is Result.Success -> {
val data = result.get()
val json = JSONArray(data)
println(json)
nebulae = listOf(json)
}
}
}
httpAsync.join()
}
响应如下所示:
[{"_nebulae_id":"2","_ss_id":"1","_product_id":"2","product_type":"Dust"},{"_nebulae_id":"2","_ss_id":"3","_product_id":"1","product_type":"Star"}]
这里是微调器代码:
val spinnerProducts: Spinner = findViewById(R.id.spinnerProducts)
var adapter= ArrayAdapter(this,android.R.layout.simple_list_item_1,nebulae)
ArrayAdapter(
this,
android.R.layout.simple_spinner_item,
nebulae // insert list
).also { adapter ->
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinnerProducts.adapter = adapter
}
P.S 我是 Kotlin 的新手,已经很久没有使用 Java 了。
【问题讨论】:
-
你的例子中的星云是什么?是列表还是对象?
-
private lateinit var nebulae: List
它是一个列表 -
将您的 json 数组转换为 Pojo 对象并将该列表传递给微调器。