【Kotlin】Lambda argument should be moved out of parentheses【警告】

【Kotlin】Lambda argument should be moved out of parentheses【警告】

自作アプリのリスト表示をListViewからRecyclerViewに切り替える改修を行っていたら、下記のような警告が出た。
RecyclerView.AdapterでViewHolderに対してListenerをつけようとしていた。

android studioの警告

Lambda argument should be moved out of parentheses

Qiitaに載せるほどでもないこいつの対応方法を下記に記す。


Lambda argument should be moved out of parenthesesの潰し方

意外とあっさり解決

Beforeはこんな感じ

    private fun setListener(v: View, status: Status): View.OnClickListener {
        val tweetDetail = Intent(v.context, TweetDetailActivity::class.java)

        // 諸々処理
        // ...

        return View.OnClickListener({
            v.context.startActivity(tweetDetail)
        })
    }

これだと

Lambda argument should be moved out of parentheses

とAndroidStudioから警告が出て、非常にもやもやして気持ち悪い。

After

潰し方は意外にも単純。無駄なカッコを減らすだけでした。

    private fun setListener(v: View, status: Status): View.OnClickListener {
        val tweetDetail = Intent(v.context, TweetDetailActivity::class.java)

        // 諸々処理
        // ...

        return View.OnClickListener{
            v.context.startActivity(tweetDetail)
        }
    }

()カッコを消しただけで解消。
昨日これが意味不明すぎて寝る時モヤモヤしていた。

参考資料