我有ImageButton
的,我发送一个吐司从override fun onCreate(savedInstanceState: Bundle?)
时,它的点击成功。
我希望循环遍历所有ImageButton
,以便将setOnClickListener
添加到其中。
这是可行的:
在没有循环的情况下工作:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<ImageButton>(R.id.r1col1).setOnClickListener {
toastContentDescription(it)
}
}
private fun toastContentDescription(it: View) {
val contentDescription = it.contentDescription
val myToast = Toast.makeText(applicationContext, contentDescription, Toast.LENGTH_SHORT)
myToast.show()
}
}
不工作,不再启动
我在这里找到了一个Android Java按钮的例子:How to get all Buttons ID's in one time on Android
所以我修改了我的代码,以遵循。但后来的应用程序不再启动(给我没有错误)。
我想我得先拿到身份证,然后问题就解决了。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
for (i in 0..4) {
val id: Int = resources.getIdentifier("R.id.r1col$i", "id", this.packageName)
findViewById<ImageButton>(id).setOnClickListener {
toastContentDescription(it)
}
}
}
private fun toastContentDescription(it: View) {
val contentDescription = it.contentDescription
val myToast = Toast.makeText(applicationContext, contentDescription, Toast.LENGTH_SHORT)
myToast.show()
}
}
有没有办法将setOnClickListener设置为循环(等等)代码中的所有ImageButton?
1条答案
按热度按时间z0qdvdin1#
从传递的字符串中删除前缀
"R.id."
。