我是 kotlin 的新手,找不到相關的解決方案。我想要做的是從 api(金額和貨幣)獲取資料并在點擊時顯示它。我能夠回圈資料,但我不知道如何取消回圈。
來自 api 的回應是這樣的:
{
"data": {
"amount": 825,
"currency": "hkd"
}
}
我的模型:
data class MainData(
var data: AmountData
)
data class AmountData(
val amount: Int,
val currency: String,
)
我的 API 服務:
interface ApiService {
@GET("posts")
fun getPosts(): Call<MutableList<PostModel>>
@GET("checkout/vend/CLIENT_ID/payment/request")
fun paymentRequest(): Call<MainData>
}
我的配接器:
class PaymentAdapter(private val mainData: MainData): RecyclerView.Adapter<PaymentViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PaymentViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.card_post, parent, false)
return PaymentViewHolder(view)
}
override fun onBindViewHolder(holder: PaymentViewHolder, position: Int) {
return holder.bindView(mainData) // I don't even know how to bind the data
}
override fun getItemCount(): Int {
return mainData.data.amount // This is also incorrect but I don't know what to do
}
}
class PaymentViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
private val tvAmount: TextView = itemView.findViewById(R.id.tvAmount)
private val tvCurrency: TextView = itemView.findViewById(R.id.tvCurrency)
fun bindView(mainData: MainData){
tvAmount.text = mainData.data.amount.toString()
tvCurrency.text = mainData.data.currency
}
}
這是迄今為止的結果。
uj5u.com熱心網友回復:
因為你總是只有一件物品你可以做
override fun getItemCount(): Int {
return 1
}
它可能已經給出了你想要的
不過,確實沒有必要為此使用 RecyclerView 。我會洗掉 RecyclerView 并添加兩個 TextView 或其他東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/461759.html
上一篇:從finally塊回傳
