Android studio 可以在kotlin中直接引用id吗?我的小程序可以';我好像跑不了
嗨,我是android新手,我读到我可以直接将id从activity_main引用到mainactivity.kt,而无需使用findviewbyid。当我这样做时,我会得到一个错误,但我的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
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)