我想创建一个可打包的数据类来放置bundle。这个数据类还包含一个我将调用的函数。但是当我放回应用程序时,我遇到了打包异常。这是我的可打包数据类,
@Parcelize
data class TransactionConfirmData(
val title: String,
@StringRes val cancelBtnLabel: Int
@StringRes val confirmBtnLabel: Int
val confirmElements: Map<String, String>,
val customConfirmDataList: List<CustomTransactionConfirmData> = emptyList(),
val requestMethodId: Int,
@NavigationRes val cancelDestination: Int = 0,
val contentStructure:
TransactionBodyContentCaseTransactionBodyContentCase.BASE_CONFIRM,
@IgnoredOnParcel val onPressFunction: Serializable
):可打包{
fun onPressOkey() = onPressFunction as () -> Unit
companion object {
fun create(
title: String,
@StringRes cancelBtnLabel: Int = R.string.bottom_sheet_behavior
@StringRes confirmBtnLabel: Int = R.string.bottom_sheet_behavior
confirmElements: Map<String, String>,
customConfirmDataList: List<CustomTransactionConfirmData> = emptyList(),
requestMethodId: Int,
@NavigationRes cancelDestination: Int = 0,
contentStructure: TransactionBodyContentCase =
TransactionBodyContentCase.BASE_CONFIRM,
onPressFunction: ()->Unit = {}
): TransactionConfirmData = TransactionConfirmData(
title,
cancelBtnLabel,
confirmBtnLabel,
confirmElements,
customConfirmDataList,
requestMethodId,
cancelDestination,
contentStructure,
onPressFunction as Serializable
)
}
}
但这样不行。
2条答案
按热度按时间wz8daaqr1#
我用一个侦听器类解决了这个问题,如下所示;
然后在数据类中创建这样的字段;
您也可以调用此按钮onPressOkey;
axr492tv2#
关键字是注记@IgnoredOnParcel。