android-studio - 如何将字符串从活动传递到kotlin中的另一个活动
问题描述
我正在尝试将文本传递给我的第二个活动,但它似乎无法正常工作。对于我的主要活动,我有一个文本视图,文本显示为“猫”。当按下第一个活动的图像时,我希望将“猫”传递给第二个活动。第二个活动的文本视图也应该显示“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()
}
}
解决方案
您正在将整个 Info 数据类转换为其字符串表示形式。您只需要数据类中的 name 属性。
name.text = info.name
推荐阅读
- python - 如何使用一列或另一列对 pandas DataFrame 进行分组
- r - ggplot2 R上比例堆积面积图的不均匀间隔和重叠线
- flutter - 路由更改时如何运行函数?
- c - 您将如何使用数组在 C 中编写此代码
- office-scripts - 突出显示距离 3 个月以内的日期
- mongodb - 为什么我不能在 Mongosh 中调用“编辑”?
- progressive-web-apps - 工作箱后台同步无法匹配正则表达式
- mysql - 拆分列并在sql中的新列中显示
- python - 为什么 UnicodeText 在 SQLALchemy 中被更改为 TEXT 并在与 MariaDB 一起使用时出现操作错误?
- python - SQLAlchemy:跨模式的 ForeignKey