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

Kotlin实现页面传值显示用户输入报intent2未解析错误排查

错误原因
  • 核心报错原因:intent2是你在MainActivity的onCreate方法中定义的局部变量,作用域仅局限在该方法内部,MessageActivity根本访问不到这个变量,因此抛出unresolved reference: intent2错误。
  • 额外写法问题:你在MainActivity点击事件外提前初始化了Intent实例,多次点击按钮时会复用同一个Intent,可能存在旧数据残留的隐患。
  • 概念误区:Android中跨页面跳转时,目标页面不需要和启动页面的Intent变量名保持一致,直接调用Activity自带的intent属性,就能获取到启动当前页面的Intent对象,从中读取传递的参数即可。
修正后的完整实现

1. MainActivity.kt 代码

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText

class MainActivity : AppCompatActivity() {
    private lateinit var etMessage: EditText
    private lateinit var btnSend: Button

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        etMessage = findViewById(R.id.etMessage)
        btnSend = findViewById(R.id.btnSend)

        btnSend.setOnClickListener {
            // 点击按钮时再创建Intent,避免复用实例的问题
            val message = etMessage.text.toString().trim()
            // 空输入校验,避免传无效内容
            if (message.isEmpty()) {
                etMessage.error = "输入内容不能为空"
                return@setOnClickListener
            }
            val intent = Intent(this, MessageActivity::class.java)
            intent.putExtra("Message", message)
            startActivity(intent)
        }
    }
}

2. MessageActivity.kt 代码

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView

class MessageActivity : AppCompatActivity() {
    private lateinit var txtEmpty: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_message)
        txtEmpty = findViewById(R.id.txtEmpty)
        
        // 直接调用Activity自带的intent属性获取启动参数,不需要自定义intent2变量
        val message = intent.getStringExtra("Message") ?: "未获取到有效内容"
        txtEmpty.text = message
    }
}
注意事项
  • 确认AndroidManifest.xml中已经注册MessageActivity,使用Android Studio新建Activity时会自动完成注册,手动创建类文件需要补充注册配置。
  • 布局文件中控件id需要和代码中findViewById传入的id完全一致,否则会抛出空指针异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:06:22