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

Android开发者指南启动另一个Activity示例代码运行异常问题咨询

Android官方入门示例Intent跳转代码运行问题

我在通过Android官方开发者网站学习移动应用开发时遇到了问题,对应官方文档地址:https://developer.android.com/training/basics/firstapp/starting-activity#kotlin

文档中给出的点击按钮构建Intent的代码无法正常运行,官方示例代码如下:

const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"

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

    /** Called when the user taps the Send button */
    fun sendMessage(view: View) {
        val editText = findViewById<EditText>(R.id.editTextTextPersonName)
        val message = editText.text.toString()
        val intent = Intent(this, DisplayMessageActivity::class.java).apply {
            putExtra(EXTRA_MESSAGE, message)
        }
        startActivity(intent)
    }
}

我对代码做了小幅修改后可以正常运行,修改后的代码如下:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var btn = findViewById<Button>(R.id.button)

    btn.setOnClickListener{
        val editText = findViewById<EditText>(R.id.editTextTextPersonName)
        val message = editText.text.toString()
        val intent = Intent(this, DisplayMessageActivity::class.java).apply {
            putExtra(EXTRA_MESSAGE, message)
        }
        startActivity(intent)
    }
}

问题解答

官方示例代码本身不存在错误,它的实现逻辑依赖布局文件配置:你需要在对应按钮的XML布局声明中添加android:onClick="sendMessage"属性,系统才会在按钮被点击时自动调用Activity中的sendMessage方法。你修改后的实现是改用动态设置点击监听器的方式,不需要额外配置布局属性,两种写法都是合法的点击事件实现方案,只是适配的前置条件不同。

如果确认官方文档存在遗漏或错误,可以通过Android官方的问题反馈通道提交详细的问题描述,包含复现场景、预期表现、实际表现即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:45:03