我具有使用动作创建小吃栏的功能:
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()。 现在,他们同时被呼叫。我知道我这里需要一个回调函数,但是我不知道如何编写它。
谢谢!
答案 0 :(得分:0)
您必须实现onActivityResult,在其中您将收到蓝牙动作响应,我已经为您实现了一项基本任务,其中我要求蓝牙onclick。
btnBluetooth.setOnClickListener {
val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
}
您将在onActivityResult中收到结果。
我已分配REQUEST_ENABLE_BT = 1,可以更改值。
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()
}