【发布时间】:2020-04-26 20:42:18
【问题描述】:
我想在这个 Activity 中从数据类 cartDocs 中获取“id”。 我正在尝试运行此代码,但出现如下错误: kotlin.UninitializedPropertyAccessException:lateinit 属性购物车尚未初始化 我也尝试删除“?”在数据类中。但仍然是同样的问题。 我怎么解决这个问题?
class CartViewActivity : AppCompatActivity(), SwipeRefreshLayout.OnRefreshListener {
lateinit var cart: cartDocs
@RequiresApi(Build.VERSION_CODES.N)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_cart_view)
val token = SharedPreference.getTokenInfo(this)
Client.retrofitService.getCart(token).enqueue(object :Callback<CartResponse> {
override fun onResponse(call: Call<CartResponse>, response: Response<CartResponse>) {
swipeRefreshLo.setOnRefreshListener(this@CartViewActivity)
showdata(response.body()?.docs!!)
val itemId = cart.id
if (itemId!=null){
SharedPreference.setCartId(applicationContext,itemId)
}
}
override fun onFailure(call: Call<CartResponse>, t: Throwable) {
}
})
数据类 cartDocs
data class cartDocs(
var id:String?=null,
var title:String?=null,
var stock:Int?=null,
var availableAfter:String?=null,
var price:Int?=null,
var point:Int?=null,
var mainImage:String?=null,
var description:MutableList<cartDescription>,
var amount:Int?=null,
var added:String?=null,
var options:MutableList<cartOptions>,
var unitPrice:Int?=null,
var unitPoint:Int?=null,
var totalPrice:Int?=null,
var totalPoint:Int?=null
)
【问题讨论】:
-
未初始化的是
cart。 -
Nullable 类型 (
?) 不会产生此错误。 -
那么如何初始化购物车??
-
通过分配给它。
cart = cartDocs(). -
@RequiresApi(Build.VERSION_CODES.N)应该已经引起了怀疑......
标签: android-studio kotlin retrofit