Kotlin 如何从回调中返回值

Kotlin 如何从回调中返回值,kotlin,callback,Kotlin,Callback,我用这个: 我正在创建一个应用程序来扫描条形码,我想在扫描完条形码后,我想把他的价值还给其他人 我的代码: var barcodeScanned = "" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) startScanning() } p

我用这个:

我正在创建一个应用程序来扫描条形码,我想在扫描完条形码后,我想把他的价值还给其他人

我的代码:

var barcodeScanned  = ""
override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    startScanning() 
}

private fun startScanning() {
codeScanner.decodeCallback = DecodeCallback {
            runOnUiThread {
                barcodeScanned = it.text
            }}}

//Here I want to take the barcodeScanned 
private fun callAPI() {
        println("barcode $barcodeScanned") //this is empty
    }
或者您可以将其作为param传递

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    startScanning() 
}

private fun startScanning() {
codeScanner.decodeCallback = DecodeCallback {
            runOnUiThread {
                callAPI(it.text)
            }}}

//Here I want to take the barcodeScanned 
private fun callAPI(result: String) {
        println("barcode $result") 
    }
或者您可以将其作为param传递

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    startScanning() 
}

private fun startScanning() {
codeScanner.decodeCallback = DecodeCallback {
            runOnUiThread {
                callAPI(it.text)
            }}}

//Here I want to take the barcodeScanned 
private fun callAPI(result: String) {
        println("barcode $result") 
    }