Android 在Kotlin中成功完成另一个函数后,如何使该函数执行?
我有这个功能来创建一个带有动作的snackbar: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
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()
}