首页 > 解决方案 > 如何通过意图将字符串值从一个活动发送到另一个活动?

问题描述

如何将用户在 StartActivity 中的 editText 中放入的值发送到 Second Activity 中的 textView3?我本质上是在 StartActivity 中询问用户他的名字,然后在 SecondActivity 中打印“你的名字是___”。

我确实尝试使用,然后在 SecondActivity 但它显示 null 我该怎么办?

开始活动::

    button.setOnClickListener 
    {
        val name = editText.text.toString()
        val intent2 = Intent (this, SecondActivity::class.java)

        intent.putExtra("name", name)
        startActivity(intent2)

    }

第二活动::

    override fun onCreate(savedInstanceState: Bundle?) 
    {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_second)

      val name2 = intent.getStringExtra("name")
      textView3.text = name2
    }

错误是它打印“你的名字为空”。enter code here

标签: androidandroid-studiokotlin

解决方案


这看起来像是 Kotlin 正在帮助您制作的一个错字。您开始的意图的名称是intent2,但您将“名称”字符串添加到intent. 这是可能的,因为 Kotlin 允许您访问getIntent()(即Intent用于启动当前活动的对象)的结果,就好像它是一个属性一样。

将此行更改为使用intent2,它应该开始工作:

intent2.putExtra("name", name)

推荐阅读