android kotlin 中的 seekBar 无法创建 setOnSeekBarChangeListener
android seekBar in kotlin cant create setOnSeekBarChangeListener
嘿,我正在尝试制作一个简单的搜索栏,但我遇到了一些奇怪的问题。
大约一年前我用 kotlin 编写了一个应用程序,它与我现在所经历的不同。首先,为什么我只能用lateinit初始化?然后我只能访问 onCreate 中的变量?无论如何,我试图制作一个搜索栏,但出于某种原因
kotlin 不能像它理解我正在尝试做的那样识别它
代码:
class Generator : AppCompatActivity() {
lateinit var username: EditText
lateinit var app: EditText
lateinit var password: TextView
lateinit var caps: Switch
lateinit var numbers: Switch
lateinit var symbols: Switch
lateinit var seekbarvalue: TextView
lateinit var length: SeekBar
lateinit var generate: Button
lateinit var copy: Button
lateinit var save: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_generator)
username = findViewById<EditText>(R.id.username)
app = findViewById<EditText>(R.id.app)
password = findViewById<TextView>(R.id.password)
caps = findViewById<Switch>(R.id.caps)
numbers = findViewById<Switch>(R.id.numbers)
symbols = findViewById<Switch>(R.id.symbols)
seekbarvalue = findViewById<TextView>(R.id.seekbarvalue)
length = findViewById<SeekBar>(R.id.length)
generate = findViewById<Button>(R.id.generate)
copy = findViewById<Button>(R.id.copy)
save = findViewById<Button>(R.id.save)
length.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener){
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
}
}
}
}
您只能在 class' 方法之一中修改超出初始声明的变量,在这种情况下,onCreate
是您声明的唯一方法。
您必须在声明时为它们分配一个值,或者如果您不确定需要的值是什么,则将其设为可空(可选)/lateinit。使用 lateinit 并在初始化之前尝试使用变量会导致崩溃。
您可能需要查看此主题以获取更多信息:
length.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
}
override fun onStartTrackingTouch(p0: SeekBar?) {
TODO("Not yet implemented")
}
override fun onStopTrackingTouch(p0: SeekBar?) {
TODO("Not yet implemented")
}
})
嘿,我正在尝试制作一个简单的搜索栏,但我遇到了一些奇怪的问题。 大约一年前我用 kotlin 编写了一个应用程序,它与我现在所经历的不同。首先,为什么我只能用lateinit初始化?然后我只能访问 onCreate 中的变量?无论如何,我试图制作一个搜索栏,但出于某种原因 kotlin 不能像它理解我正在尝试做的那样识别它
代码:
class Generator : AppCompatActivity() {
lateinit var username: EditText
lateinit var app: EditText
lateinit var password: TextView
lateinit var caps: Switch
lateinit var numbers: Switch
lateinit var symbols: Switch
lateinit var seekbarvalue: TextView
lateinit var length: SeekBar
lateinit var generate: Button
lateinit var copy: Button
lateinit var save: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_generator)
username = findViewById<EditText>(R.id.username)
app = findViewById<EditText>(R.id.app)
password = findViewById<TextView>(R.id.password)
caps = findViewById<Switch>(R.id.caps)
numbers = findViewById<Switch>(R.id.numbers)
symbols = findViewById<Switch>(R.id.symbols)
seekbarvalue = findViewById<TextView>(R.id.seekbarvalue)
length = findViewById<SeekBar>(R.id.length)
generate = findViewById<Button>(R.id.generate)
copy = findViewById<Button>(R.id.copy)
save = findViewById<Button>(R.id.save)
length.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener){
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
}
}
}
}
您只能在 class' 方法之一中修改超出初始声明的变量,在这种情况下,onCreate
是您声明的唯一方法。
您必须在声明时为它们分配一个值,或者如果您不确定需要的值是什么,则将其设为可空(可选)/lateinit。使用 lateinit 并在初始化之前尝试使用变量会导致崩溃。
您可能需要查看此主题以获取更多信息:
length.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
}
override fun onStartTrackingTouch(p0: SeekBar?) {
TODO("Not yet implemented")
}
override fun onStopTrackingTouch(p0: SeekBar?) {
TODO("Not yet implemented")
}
})