获取结果 - Kotlin startActivityForResult 不提供任何结果
Get Result - Kotlin startActivityForResult does not deliver any result
你好,我的 BarcodeActivity 由 startActivityForResult 通过我的 PCActivity 调用。然后应将扫描条形码的值返回到 PCActivity 并插入到那里的文本字段中。不幸的是,我没有得到任何回报。但是,该应用程序也不会崩溃。这是我的代码。
PCActivity:
sn_mb.setDrawableRightTouch {
val intent = Intent(this@PCActivity, BarcodeActivity::class.java)
startActivityForResult(intent, 1)
}
[...]
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
val returnedSN = intent.getStringExtra("return_sn")
sn_mb.setText(returnedSN)
} else {
sn_mb.setText("FEHLER!")
}
}
条码活动
saveBtn.setOnClickListener {
val sn = editTextBarcode.text.toString()
sn.toString()
if (sn!= "") {
val returnIntent:Intent = Intent()
returnIntent.putExtra("return_sn", sn)
setResult(Activity.RESULT_OK, returnIntent)
finish()
} else {
Toast.makeText(
applicationContext,
"Das ist keine gültige Seriennummer",
Toast.LENGTH_SHORT
).show()
}
}
我希望有人能解释或帮助我解决这个问题。非常感谢。
问题是您没有将扫描的条形码值 (sn
) 传递给 BarCodeActivity
.
中的意图 (returnIntent
)
首先确保 sn
是 String
因为你想传递一个 StringExtra
,因此:
val sn = editTextBarcode.text.toString()
然后将 sn
传递给您的 return 意图:
returnIntent.putExtra("return_sn", sn)
请注意,在您的代码中,您传递的是整数 1
而不是 sn
。
编辑:
对您的代码的又一个小修复,没有注意到它:
val returnIntent:Intent = getIntent()
注意它是 getIntent()
而不是 Intent()
您从错误的地方提取数据。
替换
val returnedSN = intent.getStringExtra("return_sn")
和
val returnedSN = data.getStringExtra("return_sn")
你好,我的 BarcodeActivity 由 startActivityForResult 通过我的 PCActivity 调用。然后应将扫描条形码的值返回到 PCActivity 并插入到那里的文本字段中。不幸的是,我没有得到任何回报。但是,该应用程序也不会崩溃。这是我的代码。
PCActivity:
sn_mb.setDrawableRightTouch {
val intent = Intent(this@PCActivity, BarcodeActivity::class.java)
startActivityForResult(intent, 1)
}
[...]
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
val returnedSN = intent.getStringExtra("return_sn")
sn_mb.setText(returnedSN)
} else {
sn_mb.setText("FEHLER!")
}
}
条码活动
saveBtn.setOnClickListener {
val sn = editTextBarcode.text.toString()
sn.toString()
if (sn!= "") {
val returnIntent:Intent = Intent()
returnIntent.putExtra("return_sn", sn)
setResult(Activity.RESULT_OK, returnIntent)
finish()
} else {
Toast.makeText(
applicationContext,
"Das ist keine gültige Seriennummer",
Toast.LENGTH_SHORT
).show()
}
}
我希望有人能解释或帮助我解决这个问题。非常感谢。
问题是您没有将扫描的条形码值 (sn
) 传递给 BarCodeActivity
.
returnIntent
)
首先确保 sn
是 String
因为你想传递一个 StringExtra
,因此:
val sn = editTextBarcode.text.toString()
然后将 sn
传递给您的 return 意图:
returnIntent.putExtra("return_sn", sn)
请注意,在您的代码中,您传递的是整数 1
而不是 sn
。
编辑: 对您的代码的又一个小修复,没有注意到它:
val returnIntent:Intent = getIntent()
注意它是 getIntent()
而不是 Intent()
您从错误的地方提取数据。
替换
val returnedSN = intent.getStringExtra("return_sn")
和
val returnedSN = data.getStringExtra("return_sn")