【问题标题】:How to pass string from activity to another activity in kotlin如何将字符串从活动传递到kotlin中的另一个活动
【发布时间】:2020-09-16 10:41:03
【问题描述】:

我正在尝试将文本传递给我的第二个活动,但它似乎无法正常工作。 对于我的主要活动,我有一个文本视图,文本显示为“猫”。当按下第一个活动的图像时,我希望将“猫”传递给第二个活动。第二个活动的文本视图也应该显示“Cat”,但是当我这样做时,它将显示为“Info(name=Cat)”,而不仅仅是“Cat”。

我不确定我哪里出错了。

这是我的主要活动

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val image = findViewById<ImageView>(R.id.imageView)
        val text = findViewById<TextView>(R.id.textView)

        image.setOnClickListener {
            val intent= Intent(this, MainActivity2::class.java).apply {

                putExtra("name", Info("Cat"))
            }
            startActivity(intent)
        }
    }
}

我的包裹类

@Parcelize
data class Info(val name : String) : Parcelable {
}

这是我的第二个活动

class MainActivity2 : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)

        val info = intent.getParcelableExtra<Info>("name")

        val name = findViewById<TextView>(R.id.textView2)

        name.text = info.toString()

    }
}

【问题讨论】:

    标签: android-studio kotlin parcelable


    【解决方案1】:

    您正在将整个 Info 数据类转换为其字符串表示形式。您只需要数据类中的 name 属性。

    name.text = info.name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多