0
0

More than 1 year has passed since last update.

kotlinのSAM変換

Last updated at Posted at 2021-12-17

kotlinでSAMのCallbackを登録する方法

JAVAの場合

        btn.setPressReleaseCallback((state) -> {
            int discard = state ?
                Log.i(TAG, "aiueo")
                 : Log.i(TAG, "kakikukeko");
        });

Kotlinの場合

        btn?.setPressReleaseCallback({ pressed: Boolean ->
            {
                if (pressed) Log.i(TAG, "aiueo")
                else Log.i(TAG, "kakikukeko")
            }
        } as PressReleaseCallback)

ラベルも使える

        for (manager in managers) {
            val btn = findViewById<ExButton>(manager.value.buttonId)
            btn.setPressReleaseCallback({ pressed: Boolean ->
                callback@{
                    if (bashing(pressed)) return@callback

                    Thread {
                        val player: IMusicPlayer = getPlayer(manager)

                        if (pressed) {
                            when (manager.key) {
                                PlayerKind.JetPlayer -> player.play("/data/local/tmp/sample.midi")
                                else -> player.play("/data/local/tmp/sample.wav")
                            }
                        } else {
                            player.stop()
                        }
                        player.playState = !player.playState
                    }.start()
                }
            } as ExButton.PressReleaseCallback)
        }
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0