如何在 kotlin 中将字符串从 activity 传递到另一个 activity
How to pass string from activity to another activity in kotlin
我正在尝试将文本传递给我的第二个 activity,但它似乎无法正常工作。
对于我的主要 activity,我有一个文本视图,文本显示 'Cat'。当按下第一个 activity 上的图像时,我希望将“猫”传递给第二个 activity。第二个 activity 的文本视图也应该显示“Cat”,但是当我这样做时,它会显示为“Info(name=Cat)”而不是“猫"。
我不确定哪里出错了。
这是我的主要activity
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)
}
}
}
我的包裹class
@Parcelize
data class Info(val name : String) : Parcelable {
}
这是我的第二个activity
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()
}
}
您正在将整个信息数据 class 转换为其字符串表示形式。您只需要数据 class.
中的名称 属性
name.text = info.name
我正在尝试将文本传递给我的第二个 activity,但它似乎无法正常工作。 对于我的主要 activity,我有一个文本视图,文本显示 'Cat'。当按下第一个 activity 上的图像时,我希望将“猫”传递给第二个 activity。第二个 activity 的文本视图也应该显示“Cat”,但是当我这样做时,它会显示为“Info(name=Cat)”而不是“猫"。
我不确定哪里出错了。
这是我的主要activity
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)
}
}
}
我的包裹class
@Parcelize
data class Info(val name : String) : Parcelable {
}
这是我的第二个activity
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()
}
}
您正在将整个信息数据 class 转换为其字符串表示形式。您只需要数据 class.
中的名称 属性name.text = info.name