为什么 Toast 没有被调用
Why Toast not getting called
我在If和Else语句中都有Toast,If语句中的所有代码都执行了,除了Toast。 Else 语句工作没有问题。
问题主要出在If语句中的Toast
我已经尝试将 Toast 从 If 语句中移除并且一切正常,尝试从 If 语句中移除 finish() 并且 Toast 仍然不会被调用。
if (filterCharSet1 in scannedID || filterCharSet2 in scannedID || filterCharSet3 in scannedID || filterCharSet4 in scannedID || filterCharSet5 in scannedID ) {
Log.d("checkcheck","contain")
finish()
Toast.makeText(this@ScannerActivity , "Error", Toast.LENGTH_SHORT).show()
}else{
Log.d("checkcheck","noContain")
finish()
Toast.makeText(this@ScannerActivity , "Ok", Toast.LENGTH_SHORT).show()
}
Else 语句中的 Toast 没有问题,但由于某种原因,If 语句中的 Toast 没有被调用。
您可以尝试使用 applicationContext 而不是 activity。 Activity,因为上下文在调用 finish() 后可能不再可用
如果您调用 finish(),则会破坏 activity,这会使 this@ScannerActivity 无效。
您的 toast 没有显示,因为 finish
关键字破坏了 activity。只需在 Toast 之后调用 finish
;您的代码应如下所示:
if (filterCharSet1 in scannedID || filterCharSet2 in scannedID || filterCharSet3 in scannedID || filterCharSet4 in scannedID || filterCharSet5 in scannedID ) {
Log.d("checkcheck","contain")
Toast.makeText(this@ScannerActivity , "Error", Toast.LENGTH_SHORT).show()
finish()
}else{
Log.d("checkcheck","noContain")
Toast.makeText(this@ScannerActivity , "Ok", Toast.LENGTH_SHORT).show()
finish()
}
希望对您有所帮助.. 编码愉快!
先调用finish()然后尝试runonuithread
this@ScannerActivity.runOnUiThread(java.lang.Runnable {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show()
})
我在If和Else语句中都有Toast,If语句中的所有代码都执行了,除了Toast。 Else 语句工作没有问题。
问题主要出在If语句中的Toast
我已经尝试将 Toast 从 If 语句中移除并且一切正常,尝试从 If 语句中移除 finish() 并且 Toast 仍然不会被调用。
if (filterCharSet1 in scannedID || filterCharSet2 in scannedID || filterCharSet3 in scannedID || filterCharSet4 in scannedID || filterCharSet5 in scannedID ) {
Log.d("checkcheck","contain")
finish()
Toast.makeText(this@ScannerActivity , "Error", Toast.LENGTH_SHORT).show()
}else{
Log.d("checkcheck","noContain")
finish()
Toast.makeText(this@ScannerActivity , "Ok", Toast.LENGTH_SHORT).show()
}
Else 语句中的 Toast 没有问题,但由于某种原因,If 语句中的 Toast 没有被调用。
您可以尝试使用 applicationContext 而不是 activity。 Activity,因为上下文在调用 finish() 后可能不再可用
如果您调用 finish(),则会破坏 activity,这会使 this@ScannerActivity 无效。
您的 toast 没有显示,因为 finish
关键字破坏了 activity。只需在 Toast 之后调用 finish
;您的代码应如下所示:
if (filterCharSet1 in scannedID || filterCharSet2 in scannedID || filterCharSet3 in scannedID || filterCharSet4 in scannedID || filterCharSet5 in scannedID ) {
Log.d("checkcheck","contain")
Toast.makeText(this@ScannerActivity , "Error", Toast.LENGTH_SHORT).show()
finish()
}else{
Log.d("checkcheck","noContain")
Toast.makeText(this@ScannerActivity , "Ok", Toast.LENGTH_SHORT).show()
finish()
}
希望对您有所帮助.. 编码愉快!
先调用finish()然后尝试runonuithread
this@ScannerActivity.runOnUiThread(java.lang.Runnable {
Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show()
})