【问题标题】:Start another activity error message for editText为 editText 启动另一个活动错误消息
【发布时间】:2021-01-13 11:06:22
【问题描述】:

https://developer.android.com/training/basics/firstapp/starting-activity#kotlin

我正在接受培训,并按照建议添加了代码:

    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.editText)
        val message = editText.text.toString()
        val intent = Intent(this, DisplayMessageActivity::class.java).apply {
            putExtra(EXTRA_MESSAGE, message)
        }
        startActivity(intent)
        }
    }

但是它不喜欢(R.id.editText)中的editText。它显示为红色,按 alt + enter 对此无效。我只希望在 DisplayMessageActivity 上看到错误。 我试图在网上找到解决此错误的方法,但似乎找不到任何帮助。

【问题讨论】:

  • 您是否尝试过从该教程中通过复制和粘贴手动添加这些导入?
  • R.layout.activity_main 这里有id editText的编辑文本吗
  • 请分享布局xml文件。
  • @Jems 我已经复制并粘贴了整个代码 - 如果这是您的意思?
  • @Jems 您的第二条评论有帮助!当我进入 R.layour.activity_main 时,editText id 显示为 editTextTextName。我只将它修改为editText,现在它正在识别它。谢谢你的帮助:)

标签: android kotlin referenceerror


【解决方案1】:

谢谢大家,这个问题已经解决了。

用户 Jems 让我检查 activity_main.xml 以查看我的 id 是否为 editText。我做了,但它有额外的措辞。它显示为 editTextTextName,因此我将其修改为仅显示 editText,现在它对代码感到满意。

【讨论】:

    【解决方案2】:

    试试这个:

    val editText = findViewById<EditText>(R.id.editText) as EditText
    

    更新

    const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"
    
    class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        val editText = findViewById<EditText>(R.id.editText) as EditText
        val message = editText.text.toString()
    }
    
    /** Called when the user taps the Send button */
    fun sendMessage(view: View) {
        val intent = Intent(this, DisplayMessageActivity::class.java).apply {
            putExtra(EXTRA_MESSAGE, message)
        }
        startActivity(intent)
        }
    }
    

    【讨论】:

    • 您好,感谢您的建议,但没有任何影响。 editText 仍然显示为红色。
    • 请上传您的类型转换错误的图片
    • 我已经更新了解决方案,现在试试这个。
    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多