You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一项目中从另一个Kotlin文件获取数据?

在同一项目中跨Kotlin文件提取数据的方法

结合你提供的两个Activity文件,主要通过Intent传递数据来实现跨文件的数据提取,具体步骤如下:

1. 从MainActivity向SecondActivity传递数据(补充完善)

在MainActivity的按钮点击事件中,已经通过Intent携带了输入框内容,代码逻辑可保持:

val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("input_text", editText.text.toString())
startActivity(intent)

这里的"input_text"是自定义的键名,用来唯一标识传递的数据。

2. 在SecondActivity中提取MainActivity传递的数据

在SecondActivity的onCreate方法里,通过Intent获取传递过来的数据:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_second)
    
    // 获取传递的数据
    val receivedText = intent.getStringExtra("input_text")
    // 将数据显示到TextView
    findViewById<TextView>(R.id.textView).text = receivedText ?: "未获取到数据"
}
  • 针对不同数据类型,可使用对应的方法:整数用getIntExtra、布尔值用getBooleanExtra等。
  • 用?:空安全运算符处理数据为空的情况,避免空指针异常。

其他跨文件数据提取场景

如果不是Activity跳转场景,普通类间传递数据还有这些常用方式:

  • 单例类存储:创建单例类统一管理共享数据,其他类直接通过实例访问:
object DataHolder {
    var sharedData: String = ""
}

存数据:DataHolder.sharedData = "需要共享的内容",取数据:val data = DataHolder.sharedData。

  • 接口回调:适用于异步数据传递场景,定义接口后,让数据提供类实现接口,数据接收类注册回调获取数据。
  • 不推荐直接用全局变量,容易导致数据状态混乱,增加维护成本。

内容的提问来源于stack exchange,提问作者Foxicle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:55:02