我正在尝试在回调onSuccess()
中创建一个对话框,它再次位于活动的onCreate()
方法内,但是对话框视图没有显示出来。
当我直接在createDialog()
内部调用onCreate()
时,它可以工作。可能是因为它不能在onSuccess()
回调函数中工作? onSuccess()
和createDialog()
肯定会被调用,因为println
出现了。
码:
class BleDevicesControlActivity : AppCompatActivity() {
private var device: BluetoothDevice? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_ble_devices_control)
connectToDevice(object : BleCommunication.OnConnectionListener {
override fun onSuccess() {
println("onSuccess called")
createDialog()
}
override fun onFailure() {
println("onFailure called")
}
})
}
private fun connectToDevice(onConnectionListener : BleCommunication.OnConnectionListener) {
bleCommunication.connect(device!!, onConnectionListener)
}
private fun createDialog() {
println("createDialog called")
val dialogInflater = LayoutInflater.from(this)
val alertDialogView = dialogInflater.inflate(R.layout.dialog_alert, null)
val alertDialog = AlertDialog.Builder(this).create()
alertDialog.setView(alertDialogView)
alertDialog.show()
}
}
试试这个
override fun onSuccess() {
println("onSuccess called")
runOnUiThread { createDialog() }
}
设置视图到对话框构建器:
private fun createDialog() {
println("createDialog called")
val dialogInflater = LayoutInflater.from(this)
val alertDialogView = dialogInflater.inflate(R.layout.dialog_alert, null)
val alertDialog = AlertDialog.Builder(this).setView(alertDialogView).create()
alertDialog.show()
}