我正在为我的 Android 应用程序(API 29)构建自定义样式的 Snackbar 消息(https://github.com/Pradyuman7/ChocoBar),我想通过在 MainActivity 中使用 1 个全局函数来调用它。在我的全局函数下面:
fun showStyledSnackbarMessage(view: View, msg: String, msgAction: String, durationMs: Int, icon: Int, action: (() -> Unit)) {
ChocoBar.builder()
.setView(view)
.setText(msg)
.setActionText(msgAction)
.setDuration(durationMs)
.setIcon(icon)
.setActionClickListener { action } // the code to execute
.build()
.show()
}
我的函数将 lambda 作为最后一个参数('action')。Android Studio 告诉我未使用的 'action' 参数。.setActionClickListener 定义如下:
public Builder setActionClickListener(View.OnClickListener listener) {
this.actionClickListener = listener;
return this;
我不明白为什么我的 lambda 不工作。当我点击小吃店的操作按钮时,什么也没有发生。如果我在没有全局函数的情况下使用此代码,则 onClickListener 确实有效。
已经使用匿名类在没有 lambda 的情况下尝试过,结果相同。
你必须调用你的动作
.setActionClickListener { action() }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句