Android 在Kotlin中成功完成另一个函数后,如何使该函数执行?

Android 在Kotlin中成功完成另一个函数后,如何使该函数执行?,android,kotlin,Android,Kotlin,我有这个功能来创建一个带有动作的snackbar: private fun setupSnackbar(view: View) { if (isConnected) { showSnackbar(view, Strings.connected, TSnackbar.LENGTH_SHORT) } else { showSnackbar(view, Strings.notConnected, T

我有这个功能来创建一个带有动作的snackbar:

private fun setupSnackbar(view: View) {
        if (isConnected) {
            showSnackbar(view, Strings.connected, TSnackbar.LENGTH_SHORT)
        } else {
            showSnackbar(view, Strings.notConnected,
            TSnackbar.LENGTH_INDEFINITE).setActionTextColor(
            ContextCompat.getColor(this, R.color.lightGreyBlue)).setAction("Connect") {
                checkBluetoothState()
                connectToProxy()
            }.show()
        }
    }

private fun checkBluetoothState() {
        if (!bluetoothAdapter.isEnabled()) {
            val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
        }
}


我的目标是仅在checkBluetoothState()完成(并启用BT)后执行connectToProxy()。 现在他们同时接到电话。我知道这里需要一个回调函数,但我不知道如何编写它


谢谢大家!

您必须实现onActivityResult,在其中您将收到bluetooth操作响应,我已经为您实现了一项基本任务,在其中我要求使用bluetooth onclick

 btnBluetooth.setOnClickListener {
        val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
    }
您将在onActivityResult中收到结果

我已经分配了REQUEST_ENABLE_BT=1,您可以更改值


请更新代码,以便包含checkBluetoothState()函数。我建议从checkBluetoothState()返回布尔值。如果为true,则调用connectToProxy()。否则,请在onActivityResult()中调用它。很高兴提供帮助:)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    if(requestCode==REQUEST_ENABLE_BT && resultCode == RESULT_OK)
    {
        callYourFunction()
    }
}

private fun callYourFunction() {

    Toast.makeText(applicationContext,"Done",Toast.LENGTH_SHORT).show()
}