【发布时间】:2021-12-25 22:54:02
【问题描述】:
我有以下可以将活动作为参数的函数,当我从Activity 调用它时,它可以完美运行。现在我想从片段中调用这个函数,但我可以看到编辑器中有一个错误,说“不兼容的类型:CargoFragment 和 Activity”。我尝试用context: Context 替换activity: Activity。
我遇到的错误是'is CargoFragment'
fun getProductList(activity: Activity) {
mFireStore.collection("abc")
.get()
.addOnSuccessListener {
.....
.....
.....
productList.add(product)
}
when (activity) {
is CargoActivity -> {
activity.success(productList)
}
is CheckoutActivity -> {
activity.success(productList)
}
is CargoFragment -> {
activity.success(productList)
}
}
}
.addOnFailureListener { e ->
Log.d("CheckTag", e.message!!)
when (activity) {
is CargoActivity -> {
activity.hideProgressDialog()
}
is CheckoutActivity -> {
activity.hideProgressDialog()
}
}
}
}
【问题讨论】:
-
您可以为您的问题添加更多上下文吗?你想达到什么目的?你哪里有这个
activity.success(...)函数? -
如您所见,
CargoActivity和CheckoutActivity是两个activities,CargoFragment是一个fragment。上面的函数在另一个名为'FirestoreFunctions.kt'的class中 -
添加调用此函数的代码部分。
-
我可以建议使用这个吗:medium.com/androiddevelopers/…
标签: android kotlin android-fragments