[初学者] 我在 2 个活动和意图上添加了编辑文本,以便在它们之间共享信息。从 1 到 2 我发送问题(TextView 上的弹出窗口),从 2 到 1 我发送答案(TextView 上的弹出窗口)。
第二部分工作完美,但由于某种原因我无法发送问题。到底是什么
主要活动1:
class MainActivity : AppCompatActivity() {
private lateinit var bq: ActivityMainBinding
private lateinit var runner: ActivityResultLauncher<Intent>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
bq = ActivityMainBinding.inflate(layoutInflater)
setContentView(bq.root)
runner = registerForActivityResult(ActivityResultContracts.StartActivityForResult())
{result: ActivityResult ->
if (result.resultCode == RESULT_OK) {
val text = result.data?.getStringExtra("Go1")
bq.t2.text = text
}
}
}
fun onClickGo2 (view: View) {
val i = Intent(this, MainActivity2 :: class.java)
i.putExtra("Go2", bq.ed1.text.toString())
setResult(RESULT_OK, i)
runner.launch(i)
}
}`
MainActivity2 :
`class MainActivity2 : AppCompatActivity() {
private lateinit var bq: ActivityMain2Binding
private lateinit var runner2: ActivityResultLauncher<Intent>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
bq = ActivityMain2Binding.inflate(layoutInflater)
setContentView(bq.root)
runner2 = registerForActivityResult(ActivityResultContracts.StartActivityForResult())
{result: ActivityResult ->
if (result.resultCode == RESULT_OK) {
Log.d("MyLog", "Результат ${result.resultCode}")
val text = result.data?.getStringExtra("Go2").toString()
bq.t4.text = text
}
}
}
fun onClickGo1 (view: View) {
val i = Intent()
i.putExtra("Go1", bq.ed2.text.toString())
setResult(RESULT_OK, i)
finish()
}
}
在第一个
Activity
中,您将问题作为“额外”放在Intent
中,然后将其发送到第二个Activity
。然而,在第二个Activity
中,您不会对启动中的“额外”做任何事情Intent
。我没有看到任何代码从 Intent
中获取“额外”并将其放入 TextView
中。