如何使用 kotlin 在另一个页面 textView 中显示 Toast.makeText 结果
How to display Toast.makeText result in another page textView using kotlin
//这是我使用kotlin的扫描器条码代码
覆盖有趣的 receiveDetections(检测:Detector.Detections){
val barcodes = detections.detectedItems
if (barcodes.size() == 1) {
scannedValue = barcodes.valueAt(0).rawValue
runOnUiThread {
cameraSource.stop()
Toast.makeText(this@InsertStockInActivity, "value- $scannedValue", Toast.LENGTH_SHORT).show()
finish()
}
}else
{
Toast.makeText(this@InsertStockInActivity, "value- else", Toast.LENGTH_SHORT).show()
}
}
//这是我的输入页
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = FragmentInputStockInBinding.inflate(inflater, container, false)
binding.btnScanBarcode.setOnClickListener{ nav.navigate(R.id.insertStockInActivity)}
return binding.root
}[enter image description here][1]
我认为你应该将 toast 文本提取为变量并将其传递到另一个页面(我假设你的意思是另一个 fragment/activity 或另一个屏幕)
private lateinit var toastText:String
...
if (barcodes.size() == 1) {
...
toastText = scannedValue
...
} else {
toastText = "value- else"
}
Toast.makeText(this@InsertStockInActivity, toastText , Toast.LENGTH_SHORT).show()
}
并通过 Intent
或 safe-args
将 toastText
传递到另一个页面,如果您使用的是 Jetpack Navigation
您可以使用视图模型、实时数据或其他(静态)对象将结果保存在变量中。同样,您可以在另一个 class 中创建一个 show toast 函数,并只传递您所在的片段或 activity 的上下文。例如,片段上下文可以是 requireContext()。
fun showToast(context: Context?, message: String) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}
//这是我使用kotlin的扫描器条码代码
覆盖有趣的 receiveDetections(检测:Detector.Detections){
val barcodes = detections.detectedItems
if (barcodes.size() == 1) {
scannedValue = barcodes.valueAt(0).rawValue
runOnUiThread {
cameraSource.stop()
Toast.makeText(this@InsertStockInActivity, "value- $scannedValue", Toast.LENGTH_SHORT).show()
finish()
}
}else
{
Toast.makeText(this@InsertStockInActivity, "value- else", Toast.LENGTH_SHORT).show()
}
}
//这是我的输入页
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = FragmentInputStockInBinding.inflate(inflater, container, false)
binding.btnScanBarcode.setOnClickListener{ nav.navigate(R.id.insertStockInActivity)}
return binding.root
}[enter image description here][1]
我认为你应该将 toast 文本提取为变量并将其传递到另一个页面(我假设你的意思是另一个 fragment/activity 或另一个屏幕)
private lateinit var toastText:String
...
if (barcodes.size() == 1) {
...
toastText = scannedValue
...
} else {
toastText = "value- else"
}
Toast.makeText(this@InsertStockInActivity, toastText , Toast.LENGTH_SHORT).show()
}
并通过 Intent
或 safe-args
将 toastText
传递到另一个页面,如果您使用的是 Jetpack Navigation
您可以使用视图模型、实时数据或其他(静态)对象将结果保存在变量中。同样,您可以在另一个 class 中创建一个 show toast 函数,并只传递您所在的片段或 activity 的上下文。例如,片段上下文可以是 requireContext()。
fun showToast(context: Context?, message: String) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}