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
相关产品推荐
相关产品推荐

