我是kotlin新手,找不到相关的解决方案。我要做的是从api(金额和货币)获得数据,并显示它的onclick。我可以循环数据,但我不知道如何取消循环。
api的响应如下:
{
"data": {
"amount": 825,
"currency": "hkd"
}
}
我的模型:
data class MainData(
var data: AmountData
)
data class AmountData(
val amount: Int,
val currency: String,
)
我ApiService:
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
}
}
这是目前为止的结果。
因为你只有一个项目所以你可以直接做
override fun getItemCount(): Int {
return 1
}
它可能已经给出了你想要的
虽然,这真的是没有必要使用一个回收视图。我会移除RecyclerView然后添加两个textview之类的