簡體   English   中英

嘗試在 Kotlin 中傳遞函數參數

[英]Trying to pass a function parameter in Kotlin

我有一個功能:

fun test(){
    Timber.d("Button Clicked")
}

我正在嘗試將此函數傳遞給片段。 這是我的片段中的那個字段。

class MyFragment(val layout: Int) : Fragment() {
     var clickEvent1: (() -> Unit)? = null
}

這就是我在開始片段交易之前設置這個字段的方式。

fragment.clickEvent1 = {test()}

我的目標是在我的片段內單擊按鈕時運行此函數。

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
     dialog_option_1.setOnClickListener { clickEvent1 }
}

我這樣做的方式有問題,因為“測試”功能沒有運行。 有人可以指出我正確的方向嗎? 謝謝

dialog_option_1.setOnClickListener(clickEvent1)

您需要將 lambda 本身傳遞給方法,因此您應該使用 () 括號而不是 {},這會創建一個新的 lambda,在您的情況下幾乎不執行任何操作。

應該

dialog_option_1.setOnClickListener { clickEvent1() }

如果你想這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM