Android studio 可以在kotlin中直接引用id吗?我的小程序可以';我好像跑不了

Android studio 可以在kotlin中直接引用id吗?我的小程序可以';我好像跑不了,android-studio,kotlin,Android Studio,Kotlin,嗨,我是android新手,我读到我可以直接将id从activity_main引用到mainactivity.kt,而无需使用findviewbyid。当我这样做时,我会得到一个错误,但我的id是正确的: 这是错误未解析引用:按钮和未解析引用:文本视图 这是我的密码 import android.os.Bundle import android.widget.Button import android.widget.Toast import android.widget.TextView im

嗨,我是android新手,我读到我可以直接将id从activity_main引用到mainactivity.kt,而无需使用findviewbyid。当我这样做时,我会得到一个错误,但我的id是正确的: 这是错误未解析引用:按钮和未解析引用:文本视图 这是我的密码


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



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

// get reference to button
                //val btnClickMe = findViewById(R.id.button) as Button
                //val myTextView = findViewById(R.id.textView) as TextView
                var timesClicked = 0
// set on-click listener
        button.setOnClickListener {
            timesClicked += 1
            textView.text = timesClicked.toString()
            Toast.makeText(this@MainActivity, "Hello Don.", Toast.LENGTH_SHORT).show()
        }

    }
}```
Please help out,i tried to import android.widget.button and textView that option is not available but when i hardcode the text appears inactive.
  • 您可以使用来减少
    findviewbyd
    的使用。你可以找到一个例子

  • 您可以详细了解这一点,以了解如何使用ViewBinding

  • 对于上述代码,您可以使用以下代码解决问题:

val myTextView=findviewbyd(R.id.textView)
val btnClickMe=findviewbyd(R.id.button)

您需要应用视图绑定。请检查是的,我想直接使用id,因为我想优化代码,所以我尝试了button.setOnClickListener,但这似乎不起作用实际上ViewBinding就是为了实现这一点。您可以直接使用ID为的按钮,就像此
按钮一样。setOnClickListener
使用此功能。您可以参考我上面回答的博客了解如何使用它。您是否将项目配置为kotlin项目?或者您刚刚在java项目中创建了一个kotlin文件?是的,这是一个kotlin项目
    val myTextView = findViewById<TextView>(R.id.textView)
    val btnClickMe = findViewById<Button>(R.id.button)